python – 如何在ForeignKey字段中使用Django中自动创建的隐式直通模型类?
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了python – 如何在ForeignKey字段中使用Django中自动创建的隐式直通模型类?,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1595字,纯文字阅读大概需要3分钟。
内容图文
![python – 如何在ForeignKey字段中使用Django中自动创建的隐式直通模型类?](/upload/InfoBanner/zyjiaocheng/804/b577a9efe5654b438613bdbdf840d520.jpg)
在Django我有以下模型.
在Supervisor模型中,我有一个多对多字段,没有明确定义的直通表.在Topic模型的ForeignKey字段中,我想引用自动创建的中间模型(由Supervisor模型中的多对多字段创建),但我不知道中间模型的名称是什么(因此我在那里写了“???”而不是名字.
Django documentation告诉“如果你没有指定显式直通模型,你仍然可以使用隐式直通模型类来直接访问为保持关联而创建的表.”
如何在ForeignKey字段中使用Django中自动创建的隐式直通模型类?
import re
from django.db import models
class TopicGroup(models.Model):
title = models.CharField(max_length=500, unique='True')
def __unicode__(self):
return re.sub(r'^(.{75}).*$', '\g<1>...', self.title)
class Meta:
ordering = ['title']
class Supervisor(models.Model):
name = models.CharField(max_length=100)
neptun_code = models.CharField(max_length=6)
max_student = models.IntegerField()
topicgroups = models.ManyToManyField(TopicGroup, blank=True, null=True)
def __unicode__(self):
return u'%s (%s)' % (self.name, self.neptun_code)
class Meta:
ordering = ['name']
unique_together = ('name', 'neptun_code')
class Topic(models.Model):
title = models.CharField(max_length=500, unique='True')
foreign_lang_requirements = models.CharField(max_length=500, blank=True)
note = models.CharField(max_length=500, blank=True)
supervisor_topicgroup = models.ForeignKey(???, blank=True, null=True)
def __unicode__(self):
return u'%s --- %s' % (self.supervisor_topicgroup, re.sub(r'^(.{75}).*$', '\g<1>...', self.title))
class Meta:
ordering = ['supervisor_topicgroup', 'title']
解决方法:
它只是通过 – 所以在你的情况下,Supervisor.topicgroups.through.
虽然我认为如果您要在Topic模型中明确引用它,您可以直接将其声明为模型.
内容总结
以上是互联网集市为您收集整理的python – 如何在ForeignKey字段中使用Django中自动创建的隐式直通模型类?全部内容,希望文章能够帮你解决python – 如何在ForeignKey字段中使用Django中自动创建的隐式直通模型类?所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。