0

我想找到一种方法将来自不同模型的多个 slug 添加到一个视图中。

使用 get_slug_field 和 get_object;或其他方式也受到赞赏..

但请考虑到这是我正在寻找解决方案的通用视图。

4

1 回答 1

0

如果您的通用视图是 type View,那么您可以使用ContextMixin然后def get_context_data(**kwargs)在视图上声明它。如果您的视图是TemplateView, ListView,DetailView等,那么您def get_context_data(**kwargs)无需使用 mixin 即可。

View使用普通和的示例ContextMixin(您需要在必要时进行适当的导入):

模型.py:

class ModelOne(models.Model):
    slug = models.SlugField(default='', max_length=75)


class ModelTwo(models.Model):
    slug = models.SlugField(default='', max_length=75)

注意:max_length 默认为 50;75是任意的

视图.py

class MyView(View, ContextMixin):

    def get_context_data(self, **kwargs):
        context = super().get_context_data(**kwargs)
        context['slug_from_model_one'] = ModelOne.objects.get(...define your lookup...).slug
        context['slug_from_model_two'] = ModelTwo.objects.get(...define your lookup...).slug
        return context
于 2018-09-12T00:33:38.803 回答