У меня есть сайт, использующий Django с моделью под названием 'CampaignProfile' - и аутентифицированные (зарегистрированные) пользователи могут создавать объект CampaignProfile через форму. После создания объект модели можно просмотреть на личной панели персональных компьютеров с проверкой подлинности. Однако, когда я вхожу в систему с другими учетными записями пользователей, то те же объекты модели можно просмотреть на личной панели, когда их не должно быть.Django - Объекты модели, созданные от одного пользователя, видимые для всех других пользователей
Как бы я указал, что только объекты, созданные данным пользователем, могут быть видны только этому пользователю (за исключением Django Admin)?
dashboard.views.py:
def dashboard_main(request):
if request.user.is_authenticated:
all_campaigns = CampaignProfile.objects.all()
return render(request, 'dashboard-main.html', {'all_campaigns': all_campaigns})
else:
return redirect('/users/login/?next=')
Я уже пытался «user.CampaignProfile.objects.all()
», когда я создаю переменную «user=request.user.id
» так, чтобы пользователь, запрашивающий объекты могут видеть только свои собственные; но это приводит к ошибкам, говорящим, что у пользователя нет атрибута CampaignProfile. Хотя я задал ForeignKey для моей CampaignProfile модели, которая будет связана с UserModel (следующая модель) ...
Вот мой заказ модель пользователя accounts.models.py:
class UserModel(AbstractBaseUser):
user_email = models.EmailField(max_length=255, unique=True, verbose_name='Email Address')
user_fname = models.CharField(max_length=30, verbose_name='First Names')
user_lname = models.CharField(max_length=30, verbose_name='Last Name')
dt_joined = models.DateTimeField(auto_now_add=True)
dt_updated = models.DateTimeField(auto_now=True)
is_active = models.BooleanField(default=True)
is_admin = models.BooleanField(default=False)
objects = UserManager()
USERNAME_FIELD = 'user_email'
REQUIRED_FIELDS = ['user_fname','user_lname']
Любые предложения будут будь удивительным спасибо.
Это правильный ответ. В Django нет концепции разрешений на уровне строк, о которой просит запрашивающий. – themanatuf