我有两个Django模型:
from django.db import models
class Show(models.Model):
show_title = models.CharField(max_length=250)
def __unicode__(self):
return self.show_title
class ShowDates(models.Model):
show_date = models.DateTimeField(default=datetime.now)
show = models.ForeignKey(Show)
def __unicode__(self):
return str(self.show_date)
我在admin.py中添加了一些Shows
以及与该节目相关的一些日期。
from django.contrib import admin
from .models import Show, ShowDates
class ShowDatesInline(admin.StackedInline):
model = ShowDates
extra = 0
class ShowAdmin(admin.ModelAdmin):
list_display = ('show_title',)
inlines = [ShowDatesInline]
admin.site.register(Show, ShowAdmin)
这对于参加演出及其各自的日期非常有用。我很困惑如何将日期显示为与节目相关的表单选择字段。我目前在views.py中有以下内容
from django.shortcuts import render
from django.core import urlresolvers
from .models import Show
from .forms import ShowDatesForm
def index(request, template):
shows = Show.objects.all()
return render(request, template, {
'shows': shows,
})
以下是使用此代码的模板:
<table class='table'>
<thead>
<tr>
<th>Show Title</th>
<th>Show Date(s)</th>
</tr>
</thead>
<tbody>
{% for show in shows %}
<tr>
<td>{{ show.show_title }}</td>
<td>
<form action="." method="post">
{% csrf_token %}
<select name="attributes" class="required" required>
<option value="">---- Please Select ----</option>
{% for show_date in show.showdates_set.all %}
<option value="{{ show_date.show_date }}">
{{ show_date.show_date }}
</option>
{% endfor %}
</select>
</form>
</td>
</td>
{% endfor %}
</tbody>
</table>
我觉得这是错误的做法。有人可以帮忙显示如何显示与正确节目相关的节目日期,这样当用户保存此表单时,正确的节目和showdate会保存吗?