arr*_*aye 2 python django-models django-forms django-views
我有以下模型,我正在尝试为其创建一个表单:
class Letter(models.Model):
title = models.CharField(max_length=100)
publish_date = models.TimeField()
class LetterRecipients(models.Model):
letter = models.ForeignKey(Letter)
recipient_name = models.CharField(max_length=200)
recipient_rating = models.IntegerField()
has_responded = models.BooleanField()
Run Code Online (Sandbox Code Playgroud)
我想要一个允许用户为该字母输入标题和publish_date的表单,并以相同的形式按名称和评级输入多个收件人.
任何人都可以帮助创建表单模型吗?我无法弄清楚如何使用django生成此表单{{ form.as_p }}.我想我将不得不使用jQuery在HTML页面上创建额外的收件人行,但是我如何让django将它们解析为模型?
任何帮助将不胜感激.
谢谢.方舟
小智 6
方舟,你可以在Django形式中使用ModelMultipleChoiceField.这里有一些粗略的例子.我创建"帖子"应用程序只是为了快速测试:
forms.py
from django import forms
from django_test.posts.models import Letter, LetterRecipients
class LetterForm(forms.Form):
title = forms.CharField()
publish_date = forms.TimeField()
recepient = forms.ModelMultipleChoiceField(
queryset=LetterRecipients.objects.all()
)
Run Code Online (Sandbox Code Playgroud)
models.py
from django.db import models
class Letter(models.Model):
title = models.CharField(max_length=100)
publish_date = models.TimeField()
class LetterRecipients(models.Model):
letter = models.ForeignKey(Letter)
recipient_name = models.CharField(max_length=200)
recipient_rating = models.IntegerField()
has_responded = models.BooleanField()
def __unicode__(self):
return self.recipient_name
Run Code Online (Sandbox Code Playgroud)
views.py
# Create your views here.
from django_test.posts.forms import LetterForm
from django.shortcuts import render
def index(request):
form = LetterForm()
data = {'form': form}
return render(request, 'posts/index.html', data)
Run Code Online (Sandbox Code Playgroud)
的index.html
{% load url from future %}
{{ form.as_p }}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6095 次 |
| 最近记录: |