在我的 Django 應用程式中,我有用于創建組態檔的模塊“用戶”。我需要有關如何根據“用戶”中的個人資料查詢和查找用戶名和姓氏的幫助。
用戶/模型.py
from django.db import models
from django.contrib.auth.models import User
from PIL import Image
from blog.models import Odjel
class Profile(models.Model):
user = models.OneToOneField(User, on_delete=models.CASCADE)
department = models.ForeignKey(Odjel, on_delete=models.SET_NULL, null=True, blank=True, verbose_name="Odjel")
image = models.ImageField(default='default.jpg', upload_to='profile_pics')
def __str__(self):
return f'{self.user.username} Profile'
def save(self, *args, **kwargs):
super().save(*args, **kwargs)
img = Image.open(self.image.path)
if img.height > 300 or img.width > 300:
output_size = (300, 300)
img.thumbnail(output_size)
img.save(self.image.path)
我不確定,但是如何僅使用 Profile 找到“user.first_name”和“user.last_name”。就像是:
queryset = User.objects.values('first_name').filter(Profile=Profile_var)
視圖.py
from users.models import Profile
from django.http import JsonResponse, HttpResponseRedirect
from .models import Post, User, File
from users.models import Profile
def load_persons(request):
#this is Ajax call from my HTML page/script
department = request.GET.get('department')
print(profile = Profile.objects.filter(department_id=department))
結果我得到 <QuerySet [<Profile: JJon Profile>]> 我需要用 JJon 查詢才能得到:姓名:約翰和姓氏:喬恩
到目前為止嘗試過:
username = User.first_name.filter(profile=profile)
AttributeError: 'ForwardOneToOneDescriptor' object has no attribute 'first_name'
username = Profile.first_name.filter(profile=profile)
AttributeError: type object 'Profile' has no attribute 'first_name'
username = Profile.user.first_name.filter(profile=profile)
AttributeError: 'ForwardOneToOneDescriptor' object has no attribute 'first_name'
uj5u.com熱心網友回復:
嘗試這個
Profile.objects.filter(pk=profile_id).values('user__first_name','user__last_name')
更新用于特定目的。
def load_persons(request):
#this is Ajax call from my HTML page/script
department = request.GET.get('department')
profile = Profile.objects.filter(department_id=department)
if profile:# we check that the profile exists first
first_name = profile[0].user.first_name
last_name = profile[0].user.last_name
uj5u.com熱心網友回復:
假設您有一個objectprofile實體Profile。由于User物件是一個OneToOneField到Profile物件。那么如果你有一個profile實體:
username = profile.user.user_name
last_name = profile.user.last_name
更多關于Django OneToOneField
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/361117.html
上一篇:如何查詢過濾器自己的外鍵
