Необходимо связать пользователя Loggin с моделью User, созданной мной во фреймворке django
Модель пользователя
class User(models.Model):
BLOOD_GROUP_CHOICES = (
('a+','A+'),
('a-','A-'),
('b+','B+'),
('b-','B-'),
('ab+','AB+'),
('ab-','AB-'),
('o+','O+'),
('o-','O-')
)
BILLABLE_and_NON_BILLABLE_CHOICES=(
('Billable','Billable'),
('Non-Billable','Non-Billable')
)
employee_name = models.CharField(max_length=50)
dob=models.DateField(max_length=8)
email=models.EmailField(max_length=254,default=None)
pancard=models.CharField(max_length=25,default=None)
aadhar=models.CharField(max_length=20,default=None)
personal_email_id=models.EmailField(max_length=254,default=None)
phone = PhoneNumberField()
emergency_contact_no=models.IntegerField(default=None)
emergency_contact_name=models.CharField(max_length=100,null=True)
relation=models.CharField(max_length=25,default=None)
blood_group=models.CharField(max_length=25,choices=BLOOD_GROUP_CHOICES,null=True)
designation=models.ForeignKey(Designation,on_delete=CASCADE,related_name="designation")
billable_and_non_billable=models.CharField(max_length=25,choices=BILLABLE_and_NON_BILLABLE_CHOICES,default='Billable')
joining_date=models.DateField(max_length=15,null=True)
relieving_date=models.DateField(max_length=15,null=True)
class Meta:
db_table ='User'
def __str__(self):
return self.employee_name
сериализаторы
class UserSerializers(serializers.ModelSerializer):
#Email Notification
def create(self, validate_data):
subject = 'Your account was activated'
plain_message = 'SAMPLE TEXT'
from_email = 'demomaster147@gmail.com'
to_email = validate_data['email']
EmailThread(subject, plain_message, from_email, to_email).start()
return User.objects.create(**validate_data)
dob=DateField(input_formats=DATE_INPUT_FORMATS)
class Meta:
model= User
fields ='__all__'
password = serializers.CharField(max_length=128, write_only=True, required=True)
admin
class StaffAdmin(admin.ModelAdmin):
def get_queryset(self, request):
qs = super().get_queryset(request)
#job = qs.filter(job_name='test job').first()
#print(f"\nQUERY : {job}\n")
#print(f"\nQUERY USER : {job.user}\n")
print(f"\nrequest.user : {request.user}\n")
if request.user.is_superuser:
return qs
return qs.filter(user__id=request.user.id)
#Admin SuperUser
@admin.register(User)
class UserAdmin(ImportExportModelAdmin):
list_display = ('id','employee_name','email','billable_and_non_billable','designation')
search_fields = ['employee_name']
pass
На самом деле с помощью приведенного выше кода я не смог получить данные о зарегистрированном пользователе или только введенные пользователем данные. У меня есть модель пользователя, созданная для добавления деталей пользователя в моем проекте, и она не связана с вошедшим пользователем. Например (если я регистрирую пользователя как "vinoth" с именем пользователя и электронной почтой, и я ввел пользователя с теми же данными в мою вышеупомянутую модель пользователя). Если я войду в систему под именем vinoth, мне нужно соединиться с моделью пользователя, если пользователь vinoth доступен, и мне нужно добавить, просмотреть и удалить данные, введенные этим конкретным пользователем. Я не знаю, как это связать, пожалуйста, помогите решить эту проблему.