Я работаю над проектом с django restframework. У меня вопрос: должен ли владелец модели быть моделью "Пользователь" или это может быть любая другая модель?
В моем случае, у пользователя есть разные магазины, и каждый магазин продает разные товары. Я хочу, чтобы каждый магазин был владельцем своего продукта, а не пользователем.
Мой файл permissions.py:
from rest_framework import permissions
class IsOwnerOrReadOnly(permissions.BasePermission):
def has_object_permission(self, request, view, obj):
if request.method in permissions.SAFE_METHODS:
return True
# Write permissions are only allowed to the owner.
return obj.owner == request.user
В приведенном выше коде как установить request.user
в что-то другое? Насколько я понимаю, использование ==
сравнивает свойства, а не установку obj.owner
с request.user
PS. в моей модели я установил поле, которым я хочу быть владельцем:
class StoreItem(models.Model):
...
owner = models.ForeignKey(Store, to_field='id', null=True, on_delete=models.SET_NULL)
...
, в моем сериализаторе я также установил владельца:
class StoreItemSerializer(serializers.ModelSerializer):
owner = serializers.ReadOnlyField(source='store.owner')
class Meta:
model = OrderItem
fields = [
...,
'owner',
]