簡體   English   中英

如何將用戶 model 的用戶數據存儲在 django 的數據庫表中

[英]how to store user data from user model inside a database table in django

我在 mysql 數據庫中有一個 Buyer 表,我想從用戶 model(默認 django model)獲取用戶名 email 和密碼,並將其存儲在 Buyer 表中,Buyer 8836168957058 模型中的 8836168957058.py:88

class Buyer(models.Model):
row_id = models.AutoField(primary_key=True)
user_name = models.CharField(unique=True, max_length=50)
user_password = models.CharField(max_length=16)
first_name = models.CharField(max_length=50)
middle_name = models.CharField(max_length=50, blank=True, null=True)
last_name = models.CharField(max_length=50)
email = models.CharField(unique=True, max_length=100)
home_phone = models.CharField(max_length=20, blank=True, null=True)
mobile_phone = models.CharField(unique=True, max_length=20)
personal_id = models.CharField(max_length=30, blank=True, null=True)
idtype_fk = models.ForeignKey('Idtype', models.DO_NOTHING, db_column='idType_FK', blank=True, null=True)  # Field name made lowercase.
personal_id_country_fk = models.ForeignKey('Country', models.DO_NOTHING, db_column='personal_id_country_FK',related_name='personal_id_country_fk')  # Field name made lowercase.
address_line_1 = models.CharField(db_column='address_Line_1', max_length=200)  # Field name made lowercase.
address_line_2 = models.CharField(db_column='address_Line_2', max_length=200, blank=True, null=True)  # Field name made lowercase.
p_o_box = models.CharField(max_length=20, blank=True, null=True)
city = models.CharField(max_length=50)
country_fk = models.ForeignKey('Country', models.DO_NOTHING, db_column='country_FK' , related_name='country_fk')  # Field name made lowercase.
gender_fk = models.ForeignKey('Gender', models.DO_NOTHING, db_column='gender_FK')  # Field name made lowercase.
bdate = models.DateField()

def __str__(self):
    return 'User: ' + self.user_name

class Meta:
    managed = False
    db_table = 'buyer'

注冊后,用戶/買家可以在個人資料頁面添加更多信息,例如名字、手機等

正如 Willem van Onsem 提到的,在您的Buyer ForeignKey中使用外鍵來引用用戶 object:

class Buyer(models.Model):
    #other stuff
    user_fk = models.ForeignKey(User, on_delete=models.SET_NULL)
    #other stuff

或者,如果每個買家只是一個用戶並且每個用戶都只是一個買家,請使用OneToOneField而不是ForeignKey

如果您隨后想要訪問用戶名/電子郵件/密碼,您可以使用這樣的查詢:

buyer = Buyer.objects.all().first()    
buyer_email = buyer.user_fk.email

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM