0

我有两个 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)

Shows在 admin.py 中放了一些以及与节目相关的一些日期。

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>

我觉得这是错误的做法。有人可以帮忙如何显示与正确节目相关的节目日期,以便当用户保存此表单时,保存正确的节目和节目日期?

4

1 回答 1

0

如果您使用 a ModelForm,django 将为您处理所有这些。

于 2013-05-01T20:56:54.483 回答