Я хотел бы получить вашу помощь, потому что я заблокирован в моем веб-приложении Django.
У меня есть два класса в моей модели:
class Document(models.Model):
code = models.CharField(max_length=25, verbose_name=_('code'), unique=True, null=False, blank=False, default='')
title = models.CharField(max_length=512, verbose_name=_('document title'))
class Download(models.Model):
email = models.CharField(max_length=150, verbose_name=_('e-mail'), null=False)
country = models.ForeignKey(Country, verbose_name=_('country'), related_name='download')
doc = models.ForeignKey(Document, verbose_name=_('Document'), null=True)
token = models.CharField(max_length=40, verbose_name=_('download token'), unique=True, null=False)
expiration_date = models.DateTimeField(verbose_name=_('expiration date'), null=False)
Как видите, класс Download
ограничен классом Document
благодаря ForeignKey
.
Теперь в моем views.py у меня есть это:
def form_valid(self, form):
email = form.cleaned_data['email']
country = form.cleaned_data['country']
for checkbox in self.request.GET.getlist('DocumentChoice'):
document = Document.objects.get(code=checkbox)
token = self.gen_token(email)
now = timezone.now()
expiration = now + settings.DOWNLOAD_VALIDITY
Download.objects.create(email=email, country=country, doc_id=checkbox, token=token, expiration_date=expiration)
return super(HomeView, self).form_valid(form)
Что я хотел бы сделать:
В этой строке: Download.objects.create(email=email, country=country, doc_id=checkbox, token=token, expiration_date=expiration)
Я бы хотел установить document.code = checkbox
, но я не могу найти хороший способ сделать это. checbox
соответствует списку кодов из document
модели.
Я пытался doc_code
, doc_id_code
... но я не нашел хорошего синтаксиса для ссылки на document.code
из download
класса.
Спасибо