У меня есть следующие модели:Каков наилучший способ включения ModelForm из другой модели в шаблон?
class Picture(models.Model):
title = models.CharField(max_length=255)
(etc)
И
class Report(models.Model):
complaint = models.TextField()
picture = models.ForeignKey('Picture')
Что я хотел бы быть в состоянии сделать это а) Включите ModelForm отчет в «Picture» видовую шаблона б) Предположите поле изображения в отчете Modelform с соответствующим рисунком
Я уже возился с контекстными процессорами, добавлял таги и пытался передать переменную через запросы tring на новую страницу, но все они кажутся довольно сложными и не работают корректно.
Что бы я хотел получить помощь, это понимание самого «дджанго» способа сделать это, и любые указатели на это.
Решение
С помощью Скотта, рабочий раствор:
views.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)
расширить CBV 'get_context_data',' 'form_valid' и Post' методу. Это потребует немного возиться, но в конце он будет работать как шарм: D –