限制官方关系的范围?

技术标签: django.  Django模型  外关关系

我正在开发一个投资组合应用程序。在此应用程序中,我有一个名为“项目”的模型,看起来像这样的东西:

class Project(models.Model):
    ... 
    images = models.ManyToManyField(Image)
    ...

因此,基本上,该项目可以包含一组图像(任何这些图像也可能属于另一个项目)。

现在,我想添加的是一种指定其中一个“图像”是一个“lex_image”。

所以我可以添加这样的东西:

class Project(models.Model):
    ... 
    images = models.ManyToManyField(Image, related_name='images')
    lead_image = models.ForeignKey(Image, related_name='lead_image')
    ...

但是,此问题的问题是在这种情况下,Lead_Image可以是任何图像。我真正想要的是,它是属于此模型实例的“图像”之一。

我认为我需要使用“foodicekey.limit_choices_to”的参数,但我不确定如何使用它......特别是因为首次创建了模型实例时,“图像“目录。

任何帮助都会大大宽容。

道格

看答案

您问题的另一种方法是使用带有Boolean属性'is_lead_image'的中间表。

class Image(models.Model):
    ...

class Project(models.Model):
    images = models.ManyToManyField(Image, through='ProjectImage')
    ...

class ProjectImage(models.Model):
    image = models.ForeignKey(Image)
    project = models.ForeignKey(Project)
    is_lead_image = models.Boolean(default=False)

    def save(self, *args, **kwargs):
        if self.is_lead_image:
            self._default_manager.filter(project=self.project).update(is_lead_image=False)
        return super(ProjectImage, self).save(*args, **kwargs)

*注意:如果您喜欢,如果您有访问权限,您也可以只添加IS_Lead_Image字段,并将其直接添加到图像类。


智能推荐

easyui限制时间控件——时间可选范围

我给大家分享的是我实现的一种方式,网上也有其他的办法,大家随便看看,毕竟适合自己的才是最好的 上面两个input是为了存储后台传过来的最大时间和最小时间,下面的input是时间标签 第一个框是对传过来的时间进行处理,如果不处理在我这里会出一个小bug,就是最大时间可以正常显示,最小时间会多算一天,比如时间是2017-05-06,那么最终的最小时间显示是2017-05-07。 第二个框是在限制时间标...

Spring MVC的ModelAndView、Model、ModelMap、RedirectAttributes的范围及关系分析

废话不多说,在Spring MVC中。 1、ModelAndView类中有个类型为ModelMap的对象。 2、ModelMap继承了LinkedHashMap<String,Object>,因此理论上可以保存任何类型的值。 3、有一个类ExtendedModelMap继承了ModelMap并且实现了Model接口。 4、还有一个类BindingAwareModelMap继承了Exte...

无意中发现看书也是一种美

2012年4月25日晚,翻翻自己喜欢的一门语言学习书(python参考手册),无意中发现书中夹着之前的明信片(有一次和同事一起去前门邓丽君音乐生活馆留下来的),感觉学习也是一种美!于是乎拍下这不经意的时刻,哈哈!...

香橙派OrangePi PC Plus开发板连接USB以太网卡测试说明

1) 目前测试过能用的 USB 以太网卡如下所示,其中 RTL8153 USB 千兆网卡插入开 发板的 USB 2.0 Host 接口中测试可以正常使用,但是速率是达不到千兆的,这点请 注意   2) 首先将 USB 网卡插入开发板的 USB 接口中,然后在 USB 网卡中插入网线,确 保网线能正常上网,如果通过 dmesg 命令可以看到下面的 log 信息,说明 USB 网卡...

猜你喜欢

计算机网络基础:Vlan,网关,dns吗,子网掩码等!面试必备!

很多朋友多次问到什么是网关、dns、子网掩码,三层交换机,它们定位的用途;确实,因为网络技术在弱电中确实应用非常广泛,我们平时在 vip 技术群中也是不断的讨论到网关、vlan、三层交换机或子网掩码等问题,今天我们就一起用通俗方式一次性了解清楚。 一、什么是 vlan? VLAN 中文是 “虚拟局域网”。LAN 可以是由少数几台家用计算机构成的网络,也可以是数以百计的计算机...

乐播科技冯森:我为什么不看好Android电视游戏

(乐播科技的三位创始人,从右往左依次为:冯森、廖峰、陈锡华) 电视在家居生活中扮演的角色重新获得了人们的认知,这块屏幕成为巨头们谋划的方向,其中一个属性便是家庭的娱乐中心。但在国内,各种基于Android平台的电视和盒子又面临游戏内容缺乏的窘境。当然,很多人或者团队都在努力着希望完善这个生态系统,但是好像没有那么简单。 另一方面,苹果系统已经是非常成熟的平台,各类iOS游戏的质量也很高。于是,来自...

Java使用阿里云OSS对象存储上传图片

该案例是OSS Java SDK的示例程序,您可以修改endpoint、accessKeyId、accessKeySecret、bucketName后直接运行。 本示例中的并不包括OSS Java SDK的所有功能,详细功能及使用方法,请参看“SDK手册 > Java-SDK”, 链接地址是:https://help.aliyun.com/document_detai...

很多.net 程序员不知道又非常重要的 .net高级调试技巧.调试别人的dll方法内的变量...

事情是这样的, 最近需要开发Orcale的数据库. 于是使用了EF 加上 Oracle.ManagedDataAccess.Client 这个Oracle.ManagedDataAccess 很好用, 不需要orcale 客户端就能用. 但是这个类库有个地方不是非常好用. 数据读取出了问题,它的提示非常非常让人气愤. 啥调试信息都没有..只有一个提示 “类型转换异常”. 大...

Spring框架

了解Spring框架 好处 : 1.不依赖于应用服务器. 2.IOC(控制反转)技术实现组件控制. 通过DI(依赖注入)技术提高了组件之间的解耦. 3.通过AOP(面向切面编程)技术实现安全、事务、日志功能的统一管理, 提高复用. 4.Spring框架可以几乎与其他任何框架进行良好的整合使用. 5.Spring所有项目之间不相互依赖. IOC : 控制反转. 本质: 将手动创建对象的工作,交给Sp...

问答精选

How to extract beta coefficients for interaction effect in R?

I am examining the interaction between a continuous variable (bloodq) and a categorical variable with three levels (ER, RB, and WB). In order to see how the betas differ across tissue types, I would l...

what is the difference between Flatten() and GlobalAveragePooling2D() in keras

I want to pass the output of ConvLSTM and Conv2D to a Dense Layer in Keras, what is the difference between using global average pooling and flatten Both is working in my case. That both seem to work d...

How to invoke a test step with inputs at runtime from groovy script in SOAP UI?

I am writing a validation groovy script for a test step, intended to test a SOAP Web Service. Now, I want to call the same test step, with different input value from the groovy script. Is it possible?...

Wicket pagestore results wrong page

I have a problem with my web application with wicket. I am using wicket 6.14. I can't say exactly what the problem is, but I can describe the problem. I am using a self written pagestore, which uses h...

Unity load files from outside of resources folder

In unity is it possible to load a resource that is out side of the resources folder. I want the user to be able to set a textAsset variable from a file outside of the Assets directory entirely. You ca...

相关问题

相关文章

热门文章

推荐文章

相关标签

推荐问答