Django自动根据上下文数据填写表单字段

时间:2018-09-04 14:24:15

标签: django django-models django-forms django-views

我有一个附加到DetailsView的表单,并且保存后工作正常。我希望表单字段(位置)预先填充详细视图中的值(例如job / human-resource-manager)。表单字段的模型具有JobPost模型的外键。需要帮忙。我的部分视图是这样

class JobsDetailView(DetailView):
model = JobPost
template_name = 'job_post-detail.html'

def get_context_data(self, **kwargs):
    context = super(JobsDetailView, self).get_context_data(**kwargs)
    context['position'] = JobPost.objects.order_by('position')
    context['job_app_form'] = JobsForm()
    return context

foms.py

 from django import forms
 from job_post.models import JobsApplied


class JobsForm(forms.ModelForm):
   class Meta:
      model = JobsApplied
      fields = '__all__'

  def form_valid(self, form):
     form.instance.customuser = self.request.user
     return super().form_valid(form)

1 个答案:

答案 0 :(得分:0)

我假设您不希望您的用户能够与这些预填充值进行交互或更改。

我正在创建评论/评论模型,我希望它可以自动将评论链接到他们所关注的人

models.py

let items = "'backgroundColor': someVaraible, 'border': '1px solid red', 'line-height': 1, 'background-color': 'rgba(142, 27, 95, 1)'"
  
console.log(
  // Split on commas not between parentheses
  items.split(/,(?![^(]+\))/)
    // Do some cleanup on the strings
    // trim() -> trim the trailing whitespace
    .map(i=>i.trim())
)

我将个人字段隐藏在ReviewsForm中,以通过从“字段”中省略它或将其添加到“排除”中来防止用户输入。

forms.py

class Review(models.Model):
person = models.ForeignKey(Person, on_delete=models.CASCADE)
...

然后,当在视图中处理表单时,我使用commit = False,以便在保存到数据库之前可以操纵字段值。 包括预填充的值,保存然后重定向到理想的用户

views.py

class ReviewsForm(forms.ModelForm):

class Meta:
    model = Review
    fields = ('rating', 'summary', 'review_text')