Get_Slug_Field () пример для нескольких слагов в Django 2.1? - PullRequest
0 голосов
/ 11 сентября 2018

Я хочу найти способ добавить несколько слагов из разных моделей в одно представление.

Либо с помощью get_slug_field и get_object;или другие способы также приветствуются ..

Но, пожалуйста, примите во внимание, что это общий вид, в котором я ищу решение.

1 Ответ

0 голосов
/ 12 сентября 2018

Если ваш общий вид имеет тип View, вы можете объявить его с помощью ContextMixin , а затем def get_context_data(**kwargs) в представлении.Если ваш взгляд - TemplateView, ListView, DetailView и т. Д., То вы можете сделать def get_context_data(**kwargs) без использования миксина.

Пример с использованием простых View и ContextMixin(вам нужно было бы сделать правильный импорт там, где это необходимо):

models.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 произвольно

views.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
...