我有以下型号:
class Picture(models.Model):
title = models.CharField(max_length=255)
(etc)
和
class Report(models.Model):
complaint = models.TextField()
picture = models.ForeignKey('Picture')
我想做的是a)在“图片”模型视图模板中包含报告ModelForm b)用相关图片预填充报告Modelform中的图片字段
我一直在搞乱上下文处理器、包含标签,并试图通过查询字符串将变量传递到新页面,但它们看起来都很复杂并且无法正常工作。
我想要帮助的是理解最'django'的方式来做到这一点,以及完成这项工作的任何指针。
解决方案
在 Scott 的帮助下,可行的解决方案是:
视图.py
def picture(request, slug):
picture = Picture.objects.get(slug=str(slug))
d = dict(picture=picture, form=ReportPicture())
d.update(csrf(request))
if request.method == 'POST':
form = ReportPicture(request.POST)
if form.is_valid():
report = form.save(commit=False)
report.picture = picture
report.save()
return redirect(picture.get_absolute_url())
return render_to_response("picture_detail.html", d)