在這里檢查了所有檔案和問題/答案,但沒有成功。需要你的幫助。我在純 PHP 和 MySQL 方面有經驗,但框架讓我很頭疼。
我的模型;
class Projects(models.Model):
id = models.AutoField(primary_key=True)
subject= models.CharField(max_length=50)
sender= models.ForeignKey(User, on_delete=models.CASCADE)#inserting django's default user id
這是 django 的默認但已編輯的auth_user表
創建表“auth_user”( "id" 整數 NOT NULL PRIMARY KEY AUTOINCREMENT, “密碼” varchar(128) NOT NULL, "last_login" 日期時間 NULL, "is_superuser" bool NOT NULL, “用戶名” varchar(150) NOT NULL UNIQUE, "first_name" varchar(150) NOT NULL, "last_name" varchar(150) NOT NULL, “電子郵件” varchar(254) 非空, "is_staff" bool NOT NULL, "is_active" bool NOT NULL, “date_joined”日期時間不為空, “tck_no” varchar(11) 非空 )
當我想取我的專案時,我正常使用;
SELECT u.*, p.* FROM users u, projects p WHERE u.id=p.sender;
Above code returns all fields on both table normally.
In django viewmodel;
@login_required(login_url="/login/") def others_projects(request): projectlist = Projects.objects.all().filter(sender_id=request.user.id)
Above code returns Projects table fields, but can not figured how to get first_name field matched record from users foreign key used?
uj5u.com熱心網友回復:
如果你正在迭代你的projectlist,你可以這樣訪問它。
projectlist = Projects.objects.filter(sender=request.user)
for p in projectlist :
print(f'First name is {p.sender.first_name}')
https://docs.djangoproject.com/en/4.0/ref/models/querysets/#filter
https://docs.djangoproject.com/en/4.0/topics/db/examples/many_to_one/
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/446897.html
