У меня есть что-то подобное в моей модели:
class Artykul(models.Model):
id = models.AutoField(max_length = 5, primary_key = True)
tytul = models.CharField(max_length = 255)
kategoria = models.ManyToManyField(Title, limit_choices_to = choices_limit)
dodano = models.DateField(auto_now_add = True)
autor = models.CharField(max_length = 255)
glowny_obrazek = models.ImageField(blank = True, upload_to="uploads/artykul_main_img")
tresc = PlaceholderField('tresc')
def show_categories(self):
return ', '.join( self.kategoria.values_list('title', flat=True) )
def prepare_choices_limit(self):
return {'page__level__exact': 1}
def __unicode__(self):
return self.tytul
Как вы можете видеть, у меня есть var choices_limit в моем ManyToManyField. Я хотел бы сделать его динамичным, чтобы у некоторых пользователей были разные опции, основанные на их разрешениях. Я могу сделать это с помощью функций prepare_choices_limit (). Вопрос в том, хороша ли вся эта идея, а если нет, то каким образом добиться этого эффекта? Или, если это хорошо, как я могу вызвать эту функцию каждый раз, когда пользователь входит в панель администратора. Я не хочу, чтобы он вызывался каждый раз, когда вызывается Model, потому что мне не нужно проверять права доступа для обычных пользователей сайта, только для администраторов.
Спасибо заранее
Михал