@vladidik

Выходит следующая ошибка при экспорте DoesNotExist at /tk_export_csv/ — Street matching query does not exist?

Всем доброго времени суток, у меня проблема, с экспортом csv файла. Я новичёк, с кодом слаб, если у кого есть решение подскажите, либо подскажите где в моём коде ошибка?

#models.py

class Ticket(models.Model):
    date = models.DateTimeField(auto_now_add=True, null=True, verbose_name="")
    viewticket = models.ForeignKey(ViewTicket, null=True, on_delete=models.CASCADE, verbose_name="Вид заявки", default=True)
    master = models.ForeignKey(Master, null=True, on_delete=models.SET_NULL, verbose_name="Мастер", default=True)
    regions = models.ForeignKey(Region, null=True, on_delete=models.SET_NULL, verbose_name="Район")
    streets = models.ForeignKey(Street, null=True, on_delete=models.SET_NULL, verbose_name="Улица")
    status = models.ForeignKey(Status, null=True, on_delete=models.SET_NULL, verbose_name="Статус", default=2)
    street_only = models.CharField(blank=True, max_length=100, null=True, verbose_name="Альтернативная улица")
    home = models.CharField(max_length = 5, null=True, verbose_name="")
    flat = models.CharField(blank=True, max_length = 5, null=True, verbose_name="", default=" ")
    phone = models.CharField(max_length = 20, null=True, verbose_name="")
    companylogin = models.ForeignKey(Companylogin, null=True, on_delete=models.SET_NULL, verbose_name="", default=True)
    logins = models.CharField(max_length = 15, null=True, verbose_name="")
    tps_id = models.CharField(blank=True, max_length=100, null=True, verbose_name="", unique=True)
    priority = models.ForeignKey(Priority, null=True, on_delete=models.SET_NULL, verbose_name="", default=2)
    coment = models.TextField(blank=True,  null=True, verbose_name="Комментарий", default=" ")
    comment_master = models.TextField(blank=True,  null=True, verbose_name="Комментарий", default=" ")
    update = models.DateTimeField(auto_now=True)
    author = models.ForeignKey('auth.User', null=True, on_delete=models.SET_NULL, verbose_name="Автор", default=True)



#views.py

def ticket_export_csv(request):
    response = HttpResponse(content_type='text/csv; charset=windows-1251')
    writer = csv.writer(response, delimiter=';', dialect='excel')
    writer.writerow(['Дата','Район', 'Улица', 'Альтернативаня улица','Дом', 'Квартира', 'Телефон', 'Оператор','Вид заявки', 'Комментарий'])
    response.close()


    for ticket in Ticket.objects.filter(status=2).values('date', 'regions','streets', 'street_only', 'home', 'flat', 'phone','author', 'viewticket', 'coment'):
        get_viewticket = ViewTicket.objects.get(id=ticket.get('viewticket'))
        get_street = Street.objects.get(id=ticket.get('streets'))
        get_region = Region.objects.get(id=ticket.get('regions'))
        get_author = User.objects.get(id=ticket.get('author'))


        ticket['regions'] = get_region.name
        ticket['streets'] = get_street.name
        ticket['author'] = get_author.first_name
        ticket['viewticket'] = get_viewticket.name

        writer.writerow([ticket.get('date'), ticket.get('regions'), ticket.get('streets'), ticket.get('street_only'), ticket.get('home'), ticket.get('flat'), ticket.get('phone'), ticket.get('author'), ticket.get('viewticket'), ticket.get('coment')])
    response['Content-Disposition'] = 'attachment; filename="ticket.csv"'

    return response


Заранее благодарю за помощь. Спасибо всем
  • Вопрос задан
  • 24 просмотра
Решения вопроса 1
@bacon
Скорее всего у Ticket в streets пусто. И зачем было применено values, когда дальше потребовались объекты (Street и прочие)? Или уберите его и используйте ticket.streets.name, не забывая что streets может быть пустым, или прописывайте name в самих values('streets__name')
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
Верфь Екатеринбург
от 70 000 до 140 000 ₽
Junto Москва
от 80 000 до 120 000 ₽
Большая Тройка Москва
от 120 000 до 200 000 ₽
25 сент. 2020, в 12:41
550 руб./в час
25 сент. 2020, в 12:34
7000 руб./за проект
25 сент. 2020, в 12:31
1500 руб./в час