У меня есть 2 класса в models.py - Users и authUser - у 1st есть информация, связанная с приложением, а у 2nd общая информация о пользователе, и оба связаны с внешним ключом в имени пользователя.
Я получаю информацию о запросе пользователя из 'request.user.username' и пытаюсь выполнить поиск в своей таблице пользователей, чтобы получить информацию, относящуюся к приложению, на основе зарегистрированного пользователя. Он возвращает пустой набор запросов.
Я пробовал -
print(Users.objects.filter(username__username = request.user.username))
----xx---
print(Users.objects.filter(username = request.user.username))
----xx---
print(Users.objects.filter(Q(username__username = request.user.username)))
----xx---
print(Users.objects.get(username__username = request.user.username))
Четный -
tmp = (Users.objects.all())
for each in tmp:
print(each.username)
----xx---
print(each.username__username)
models.py
class Users(models.Model):
userid = models.AutoField(db_column='UserID', primary_key=True) # Field name made lowercase.
username = models.ForeignKey('AuthUser', models.DO_NOTHING, db_column='Username', unique=True) # Field name made lowercase.
ownedfridges = models.TextField(db_column='OwnedFridges', blank=True, null=True) # Field name made lowercase.
friendedfridges = models.TextField(db_column='FriendedFridges', blank=True, null=True) # Field name made lowercase.
personalnotes = models.TextField(db_column='PersonalNotes', blank=True, null=True) # Field name made lowercase.
eff_bgn_ts = models.DateTimeField()
eff_end_ts = models.DateTimeField()
class Meta:
managed = False
db_table = 'Users'
class AuthUser(models.Model):
password = models.CharField(max_length=128)
last_login = models.DateTimeField(blank=True, null=True)
is_superuser = models.IntegerField()
username = models.CharField(unique=True, max_length=150)
first_name = models.CharField(max_length=30)
last_name = models.CharField(max_length=150)
email = models.CharField(max_length=254)
is_staff = models.IntegerField()
is_active = models.IntegerField()
date_joined = models.DateTimeField()
class Meta:
managed = False
db_table = 'auth_user'
просмотров.py -
def home(request):
current_user = request.user
print(request.user)
print(Users.objects.filter(username__username = request.user.username))
print("---------------------------------------------------------")
Я работаю с пользователем test1 и ожидаемый результат равен Queryset<[<Users: Users object (1)>]>
, тогда как я получаю Queryset<[]>