我有一個用戶提交表單,並且用戶提供他的名字和電子郵件。每封電子郵件都與網絡相關聯(在用戶註冊之前由管理員),並根據用戶的電子郵件將他分配到該網絡。在Django的模型中遇到問題
這裏是models.py的樣子 -
class Network(models.Model):
network = models.CharField(max_length=50)
location = models.CharField(max_length=50)
class EmailList(models.Model):
email = models.EmailField(blank=True)
network = models.CharField(max_length=50)
class User(models.Model):
name = models.CharField(max_length=50)
email = models.EmailField(max_length=50)
network = models.ForeignKey(Network)
而在views.py
這是我使用的嘗試插入記錄到數據庫中的東西 -
User.objects.create(
name = cd['name']
email=cd['email'],
network= EmailList.objects.filter(email=request.POST.get('email'))['network'])
但是,我收到來自network=
行的TypeError異常。該語法應該在這裏「拉」並將與電子郵件關聯的網絡插入到數據庫中?我在做什麼錯誤
更新
這是我在views.py
用得到它的工作的代碼。
email_list = EmailList.objects.get(email=cd['email'])
network= Network.objects.get(network=email_list.network)
User.objects.create(
name=cd['name'],
email=cd['email'],
network=network)
當我嘗試設置變量email = cd['email']
然後定義使用該變量,像這樣EMAIL_LIST - email_list = EmailList.objects.get(email=email)
,它會拋出一個異常說的QuerySet中的emailList沒有發現將通過unicode字符串。
爲什麼在傳遞它之前定義變量在這種情況下會創建一個unicode字符串,而直接傳遞表達式不會呢?
EmailList中的'email'應該是'user'作爲'User'的外鍵,'network'應該是'Network'的外鍵而不是'CharField'。這樣可以節省大量的頭痛。 – 2011-05-10 20:52:32