我是 Django 的新手。我有这样的模型:
class Category(models.Model):
category = models.CharField(max_length=20)
def __unicode__(self):
return self.category
class Tag(models.Model):
tag = models.CharField(max_length=30, blank=True)
def __unicode__(self):
return self.tag
class News(models.Model):
title = models.CharField(max_length=80)
category = models.ForeignKey(Category)
author = models.ForeignKey(User)
news_body = models.CharField(max_length=5000)
pub_date = models.DateField(default = datetime.datetime.now())
tags = models.ManyToManyField(Tag, blank=True)
def __unicode__(self):
return self.title
和表格,用于添加新闻:
class AddNewsForm(ModelForm):
class Meta():
model = News
我对模板中的 ModelChoiceField 表示有疑问。我想使用<select>/<option>
这样的标签:
<select id="id_category" name="category">
<option value="" selected="selected">---------</option>
{% for cat in form.category %}
<option>{{cat}}</option>
{% endfor %}
</select>
但它不起作用。如何获得类别字段选择(遍历它们)。这是一个简单的问题,但我很困惑,找不到有效的解决方案。
使用 {{ form.as_p }} 效果很好,但我需要隐藏作者字段(作者 - 登录用户)。