Я хочу ограничить, какие строки отображаются в консоли администратора Django на основе пользователя, который вошел в систему. Используя модель AuthUser, я создал следующую модель учетной записи, ссылки которой Джанго учетные записи пользователей к конкретным предприятиям в моей базе данных:Фильтрация строк консоли администратора Django на основе зарегистрированного пользователя
class Account(models.Model):
id = models.AutoField(primary_key=True, editable=False)
username_id = models.ForeignKey('AuthUser', db_column='username_id')
business_id = models.ForeignKey('Business', db_column='business_id')
Вот мой бизнес-модель:
class Business(models.Model):
id = models.AutoField(primary_key=True, editable=False)
name = models.CharField(max_length=45)
address = models.CharField(max_length=45)
Когда пользователь входит в систему, я хочу, чтобы ограничить пользователя, таким образом они могут только добавить/вид/удалять записи в/из моей базы данных (через Django admin conso le) для их бизнеса. Вот моя модель ввода:
class Entry(models.Model):
id = models.AutoField(primary_key=True, editable=False)
business = models.ForeignKey('Business')
entry_text = models.CharField(max_length=300)
created = models.DateField(auto_now=True)
Есть ли простой способ добиться этого?
Не могли бы вы пояснить, что именно происходит в этой строке: return qs.filter (business__in = request.user.account_set.all(). Values_list ('business_id', flat = True)) – farbodg
@foadster, добавлено объяснение выше. –
Спасибо. Что такое MyModelAdmin? PyCharm дает мне ошибки ... – farbodg