Python中文
首页
教程
问答
标签
搜索
登录
注册
Django用户帐户,扩展帐户
回答此问题可获得
20
贡献值,回答如果被采纳可获得
50
分。
<p>我正在尝试扩展Django的用户帐户帐户模型,以向其添加一组附加字段。问题是“Account”对象有一组检查某些参数的方法,我想重用所有这些代码。因此,我首先想到的是用我自己的类扩展Account类:</p> <pre><code>class snAccount(Account): account = models.OneToOneField(Account, related_name="sn_account", verbose_name=_("snAccount")) # Extra fields organization = models.CharField(_("language"), ..., ) country = CountryField() @classmethod def create(cls, request=None, **kwargs): create_email = kwargs.pop("create_email", True) user = kwargs.pop("user", None) acc = Account.create(request, user=user, create_email=create_email) x_account = cls(**kwargs) #x_account.user = request.user x_account.save() return x_account </code></pre> <p>问题是每次我想保存这个“扩展”帐户类时,都会出现以下异常:</p> ^{pr2}$ <p>如果我直接将user字段添加到扩展帐户(取消对“#x”行的注释_帐户.用户= 请求.用户“我得到以下错误:</p> <pre><code>Exception Type: IntegrityError Exception Value: (1062, "Duplicate entry '1' for key 'user_id'") </code></pre> <p>我认为这个字段将直接从Account模型继承而来,没有显式声明该字段。我做错什么了?这是正确的方法吗?还是我最好创建一个不扩展Account类但仍然通过ForeignKey字段链接到它的模型?在</p>
0 条评论
分类:
Python问答
请先
登录
后评论
默认排序
时间排序
1 个回答
匿名
1天前
擅长:python、mysql、java
<p>问题是因为当子类化一个模型时,django会在新模型中创建一个指向基础模型的<code>*_ptr</code>字段。创建模型的新实例时,将同时创建具有属性的模型和具有基本属性的基础模型。在</p> <p>在本例中,如果删除<code>Account.create(...)</code>行,django将使用自定义字段创建<code>snAccount</code>,并使用填充的所有基字段创建{<cd4>},并将它们链接在一起。在</p>
请先
登录
后评论
针对此问题:
更多的回答
关注
89
关注
收藏
1
收藏,
216
浏览
网友 提问于 2天前
相关Python问题
我想从用户inpu创建一个类的实例
4 回答
我想从用户导入值,为此
2 回答
我想从用户那里得到一个整数输入,然后让for循环遍历该数字,然后调用一个函数多次
8 回答
我想从用户那里收到一个列表,并在其中执行一些步骤,然后在步骤完成后将其打印回来,但它没有按照我想要的方式工作
6 回答
我想从用户那里获取输入,并将值传递给(average=dict[x]/6),然后在那里获取resu
9 回答
我想从第一个列表中展示第一个词,然后从第二个列表中展示十个词,以此类推- Python
9 回答
我想从第一个空lin开始解析文本文件
9 回答
我想从简历、简历中提取特定部分
5 回答
我想从给定字典(python)的字符串中删除\u00a9、\u201d和类似的字符。
6 回答
我想从给定的网站Lin下载许多文件扩展名相同的Wget或Python文件
1 回答
我想从网上搜集一些关于抵押贷款的数据
5 回答
我想从网站上删除电子邮件地址
6 回答
我想从网站上读取数据该网站包含可下载的文件,然后我想用python脚本把它发送给oracle如何?
9 回答
我想从网站中提取数据,然后将其显示在我的网页上
3 回答
我想从网页上提取统计数据。
5 回答
我想从网页上解析首都城市,并在用户输入国家时在终端上打印它们
6 回答
我想从色彩图中删除前n个颜色,而不丢失原始颜色数
6 回答
我想从课堂上打印字典里的键
10 回答
我想从费用表中获取学生上次支付的费用,其中学生id=id
10 回答
我想从较低的顺序对多重列表进行排序,但我无法在一行中生成结果
1 回答