Использую Django и reportlab для создания pdf. Отчет не работает, когда я пытаюсь включить поле, привязанное к внешнему ключу
Моя попытка сделать pdf терпит неудачу с ошибкой server500, когда я пытаюсь экспортировать поле, созданное внешним ключом. Я полагаю, что проблема заключается именно в этом, поскольку все остальные поля работают так, как ожидалось. Это же поле можно аналогичным образом экспортировать в формат csv.
в файле views.py:
def report_pdf(request):
# Create a Bytestream buffer
buf = io.BytesIO()
# Create a canvas
c = canvas.Canvas(buf, pagesize=letter, bottomup=0)
# Create a text object
textob = c.beginText()
textob.setTextOrigin(inch, inch)
textob.setFont("Helvetica", 14)
# Designate the model
customers = Customer.objects.all()
lines =[]
for customer in customers:
lines.append(customer.address)
lines.append(customer.address2)
lines.append(customer.city)
lines.append(customer.province3)
# Loop
for line in lines:
textob.textLine(line)
# Finsih up
c.drawText(textob)
c.showPage()
c.save()
buf.seek(0)
return FileResponse(buf, as_attachment=True, filename='customer_list.pdf')
и в models.py
class Customer(models.Model):
address = models.CharField(max_length=100, null=True, blank=True)
address2 = models.CharField(max_length=100, null=True, blank=True)
city = models.CharField(max_length=50, null=True, blank=True)
province3 = models.ForeignKey(Province, null=True, blank=True, on_delete=models.PROTECT)
и зарубежная модель:
class Province(models.Model):
province = models.CharField(max_length=2)
def __str__(self):
return(f"{self.province}")
Я пробовал отключить поле province3, после чего оно работает.
Правильно ли я понимаю, что это связано с тем, что в нем используется внешний ключ? Если да, то в чем может быть проблема? Я проверил журналы сайта и журналы apache, но, похоже, там нет никакой помощи.