Django Создание отдельной копии модели при каждой регистрации пользователя
Итак, я действительно новичок в Django. Я работал над приложением в рамках задания, которое требует от меня создать webapp с функцией входа, Далее администратор должен создать несколько задач, которые будут общими для всех пользователей. Итак, вот модель, которая будет содержать все задачи и будет управляться администратором:
from django.db import models
# Create your models here.
class applib(models.Model):
status_code=[
('C','Completed'),
('P','Pending'),
]
title = models.CharField(max_length=50)
status=models.CharField(max_length=2,choices=status_code)
point = models.IntegerField()
category= models.CharField(max_length=50)
subcat = models.CharField(max_length=50)
applink = models.CharField(max_length=100)
def __str__(self):
return self.title
Теперь я обошел функциональность входа в систему, и хочу, чтобы при каждом входе в систему копия этой модели прикреплялась к пользователю, чтобы у пользователя был свой собственный набор задач. Он должен иметь возможность отслеживать эти задачи и выполнять их самостоятельно. Как мне это сделать, не создавая отдельные модели задач для каждого пользователя. Я знаю, что есть действительно простое объяснение и решение, но все, что я знаю сейчас, это то, что я хочу наследовать задачи от основной модели для каждого пользователя при его создании.
Спасибо.
Вам необходимо добавить поле user
к AppLib
(изменить classname на CamelCase).
class AppLib(models.Model):
...
user = models.ForeignKey(settings.AUTH_USER_MODEL, models.CASCADE, related_name="tasks")
...
Таким образом, в панели администратора вы можете назначать задания конкретному пользователю
В вашем классе администратора AppLib
вы можете модифицировать метод get_queryset
, чтобы показывать только задачи, связанные с текущим пользователем:
@admin.register(AppLib)
AppLibAdmin(admin.ModelAdmin):
...
def get_queryset(self, request):
return super().get_queryset(request).filter(user=request.user)