Задать вопрос
Ответы пользователя по тегу Django
  • Имеет ли смысл полностью изучить Django бэкендеру?

    Rimush
    @Rimush
    Естественно нужно, кто будет модели описывать, миграцию делать, статику настраивать, да и сам джанго конфигурировать. Шаблоны это малая часть джанго.
    Ответ написан
    1 комментарий
  • Можно ли в модели добавить несколько элементов циклом?

    Rimush
    @Rimush Автор вопроса
    Сделал через ManyToManyField

    Создал таблицу с регионами:
    class Region(models.Model):
        region_name = models.CharField(verbose_name='Название', max_length=100)
        region_id = models.PositiveIntegerField(verbose_name='Код субъекта', default=0)
    
        def __str__(self):
            return f'{self.region_id:02} - {self.region_name}'
    
        class Meta:
            verbose_name_plural = 'Регионы'
            verbose_name = 'регион'


    Добавил в модель models.ManyToManyField(Region, blank=True)
    class Geography(SingletonModel):
    
        title = models.CharField(verbose_name='Заголовок', max_length=200)
        slug = models.SlugField(verbose_name='Алиас', unique=True, blank=True, max_length=255)
        image = models.ImageField(verbose_name='Картинка', blank=True, upload_to='images')
        text = models.TextField(verbose_name='Текст')
        regions = models.ManyToManyField(Region, blank=True)
    
        def save(self):
            super(Geography, self).save()
            if not self.slug:
                self.slug = slugify(self.title) + '-' + str(self.id)
                super(Geography, self).save()
    
        def __str__(self):
            return self.title
    
        class Meta:
            verbose_name_plural = 'География'
            verbose_name = 'география'


    А во view добавил:
    from django.db import models
    from django.forms import CheckboxSelectMultiple
    
    class GeographyAdmin(admin.ModelAdmin):
        formfield_overrides = {
            models.ManyToManyField: {'widget': CheckboxSelectMultiple},
        }
    Ответ написан
    Комментировать
  • Откуда берется данная ошибка?

    Rimush
    @Rimush Автор вопроса
    Понял в чем косяк.
    Использовал костыль в admin.py для своей сортировки приложений в меню:

    class MyAdminSite(AdminSite):
        def get_app_list(self, request):
            app_dict = self._build_app_dict(request)
            app_list = sorted(app_dict.values(), key=lambda x: x['name'].lower())
            return app_list

    В get_app_list(self, request): как раз и не хватает параметра. Сделал:

    class MyAdminSite(AdminSite):
        def get_app_list(self, request, app_label=None):
            app_dict = self._build_app_dict(request)
            app_list = sorted(app_dict.values(), key=lambda x: x['name'].lower())
            return app_list
    Ответ написан
    Комментировать