我想找到一种方法将来自不同模型的多个 slug 添加到一个视图中。
使用 get_slug_field 和 get_object;或其他方式也受到赞赏..
但请考虑到这是我正在寻找解决方案的通用视图。
我想找到一种方法将来自不同模型的多个 slug 添加到一个视图中。
使用 get_slug_field 和 get_object;或其他方式也受到赞赏..
但请考虑到这是我正在寻找解决方案的通用视图。
如果您的通用视图是 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