Django 从 urls 获取属性到过滤器

Django get attribute from urls into filter

你好,我是 django 的新手,我正在尝试制作一个提供有季节和剧集的系列的网站。

我成功为意甲创建了 CreateView。现在我要为季节做 CreateView。它应该看起来像这样。

季节:
[1] [2] [3] [添加]

如果您单击“添加”,它应该会显示一个带有季节表单的模态。我的代码如下所示:

models.py

class Serie(models.Model):
    title = models.CharField(max_length=120)
    thumbnail = models.ImageField(upload_to=serie_dir_path)
    ...


class Season(models.Model):
    order = models.IntegerField()
    serie = models.ForeignKey(Serie, on_delete=models.CASCADE)
    ...

class Episode(models.Model):
    title = models.CharField(max_length=120)
    order = models.IntegerField()
    episode = models.FileField(upload_to=episode_dir_path)
    season = models.ForeignKey(Season, on_delete=models.CASCADE)

urls.py

urlpatterns = [
    path('library', LibListView.as_view(), name='library'),
    path('series/<int:pk>/season/<int:order>', SeriesDetailView.as_view(), name='serie-detail'),
]

views.py

class SeasonCreateView(LoginRequiredMixin, CreateView):
    model = Season
    fields = ['order']

    def get_context_data(self, **kwargs):
        context = super(SeasonCreateView, self).get_context_data(**kwargs)
        context.update({
            'serie': Serie.objects.filter()
        })
        return context

season_form.html

{% for season in serie.season_set.all %}
...
{% endfor %}

我必须在从 url 获得意甲的 filter() 中写入什么?

{% for season in serie.season_set.all %}

<p>{season}</p>
{% endfor %}

请在 for 循环定义中尝试 all() 而不是 all

从url获取参数:

parameter = request.GET.get("parameter_name")

正在过滤:

'serie': Serie.objects.filter(model_field_name=parameter)

好的,我自己知道了。我用了 get_object_or_404

def get_context_data(self, **kwargs):
    s = get_object_or_404(Serie, id=self.kwargs.get('pk'))
    context = super(SeasonCreateView, self).get_context_data(**kwargs)
    context.update({
        'serie': s
    })
    return context