У меня есть Django Модель сообщения, содержащая изображения, текст, дату создания и владельца, который может добавлять других пользователей для просмотра. Я хочу добавить функцию, которая позволяет пользователю, который находится в поле shared_to, добавлять изображение только один раз. Поэтому я создал поле ManyToMany, чтобы проверить, добавил ли пользователь свое изображение или нет. Если нет, позвольте ему добавить изображение вместе со своим идентификатором, чтобы он не смог сделать это снова. Я пробовал некоторые вещи, чтобы автоматически добавлять пользователей в поле ManyToMany и проверять, есть ли они уже в нем, но не работает.
model.py
class Post(models.Model):
post_name = models.CharField(max_length=255)
post_text = models.TextField(max_length=360, blank=True)
owner = models.ForeignKey(
settings.AUTH_USER_MODEL, related_name='owner_user', on_delete=models.SET(get_deleted_user), default=1)
created_on = models.DateTimeField(default=timezone.now)
date_to_open = models.DateTimeField(blank=False)
shared_to = models.ManyToManyField(UserProfile, blank=True, related_name='shared_to_user')
image_editor = models.ManyToManyField(UserProfile, blank=True, related_name='image_editor_user')
def __str__(self):
return self.post_name
def save(self, *args, **kwargs):
super(Post, self).save(*args, **kwargs)
class PostImage(models.Model):
post_file = models.FileField(blank=True, null=True,
upload_to='media/covers/%Y/%m/%D/')
gallery_post = models.ForeignKey(Capsule, related_name='images', on_delete=models.CASCADE)
urls. ру
path('addimage/<int:pk>/', views.AddImageView.as_view(), name='createimage'),