首页 > 解决方案 > Django外键创建表单获取实例

问题描述

当我使用外键字段创建新对象时,模板中有没有办法在创建表单上获取模板中的外键对象字段?每当我创建一个新注释时,我都希望:“将新注释添加到 {{申请人.full_name }}”

class Applicant(models.Model):
    first_name = models.CharField(max_length=128,blank=False, verbose_name="First Name")
    middle_name = models.CharField(max_length=128,blank=True, verbose_name="Middle Name")
    last_name = models.CharField(max_length=128,blank=False, verbose_name="Last Name")

    @property
    def full_name(self):
        "Returns the applicant's full name."
        return '%s %s %s' % (self.first_name, self.middle_name, self.last_name)

class Note(models.Model):
    applicant = models.ForeignKey(Applicant, related_name='notes', on_delete=models.CASCADE)
    description = models.TextField(blank=True)
)

(更新)这是视图:

class NoteCreate(CreateView):
    model = Note
    form_class = forms.NoteForm
    template_name = 'careers/add_note.html'

    def form_valid(self, form):
        applicant_pk = self.kwargs['pk']
        applicant = Applicant.objects.get(pk=applicant_pk)
        self.object = form.save(commit=False)
        self.object.applicant = applicant
        self.object.save()
        return super(NoteCreate, self).form_valid(form)

标签: djangodjango-forms

解决方案


推荐阅读