擅长:python、mysql、java
<p>这是一个很好的<a href="http://www.peachybits.com/2011/09/django-1-3-form-api-modelform-example/" rel="nofollow">tutorial on ModelForms</a>。尽管它是为Django 1.3设计的,所以它正在慢慢过时。</p>
<p>当您直接访问表单提交url时,您应该只收到<code>local variable 'store' referenced before assignment</code>错误。如果表单已发布到url,则应分配存储。</p>
<p>您正在尝试基于模型创建窗体,因此我将解释如何使用ModelForm。</p>
<p>您的反馈模型有一个DateTimeField,并且您正在存储提交反馈的时间戳。通过将<code>auto_now_add</code>设置为true,可以自动执行此操作</p>
<pre><code>date = models.DateTimeField("comment_date", auto_now_add=True)
</code></pre>
<p>然后在应用程序文件夹中创建一个<strong>forms.py</p>
<pre><code>from django.forms import ModelForm
from your_app.models import Feedback
...
class FeedbackForm(ModelForm):
class Meta:
model = Feedback
exclude = ('store',)
</code></pre>
<p>views.py应该包含一个显示和处理提交表单的函数</p>
<pre><code>from your_app.forms import FeedbackForm
...
def add(request, store_name):
form = FeedbackForm(request.POST or None)
if form.is_valid():
feedback = form.save(commit=False)
store = Store.objects.get(store_name=store_name)
feedback.store = store
feedback.save()
</code></pre>