多对多字段创建的所有实例都作为关系添加到声明关系的模型中

如何解决多对多字段创建的所有实例都作为关系添加到声明关系的模型中

我正在使用 Django 多态,我认为这可能是我的困境背后的原因。

我想通过要添加的外键将模型的一些实例连接到其他三个实例,而其他实例则没有,我不知道该怎么做,是否需要中间步骤,我该怎么办?

这是我的模型:

from django.db import models
from polymorphic.models import polymorphicModel
from django.contrib.contenttypes.fields import GenericRelation
from django.contrib.contenttypes.fields import GenericForeignKey
from django.contrib.contenttypes.models import ContentType

class usermodel(models.Model):
    MEMBERSHIP_TYPE = [
    ('NM','norMAL'),('PT','PLATA'),('OR','ORO'),('PL','PLATINO'),]
    id = models.AutoField(primary_key=True)
    username = models.CharField(max_length=100,unique=True)
    photo = models.ImageField(upload_to='images/',blank=True)
    address = models.TextField()
    client_type = models.CharField(max_length=2,choices=MEMBERSHIP_TYPE,default= 'NM')

    def __unicode__(self):
        return self.name

class ArticleModel(models.Model):
    id = models.AutoField(primary_key=True)
    code = models.IntegerField(unique=True)
    description = models.TextField()
    
    def __str__(self):
        return str(self.code)


class OrderModel(models.Model):
    id = models.AutoField(primary_key=True)
    client = models.ForeignKey('usermodel',on_delete=models.CASCADE)
    gen_time = models.DateTimeField(auto_Now_add=True)
    gen_supplied = models.DateTimeField(null=True,blank=True)
    urgent = models.BooleanField()
    order_to = models.ForeignKey('OrderToModel',on_delete=models.CASCADE)
    article = models.ForeignKey('ArticleModel',on_delete=models.CASCADE)
    quantity= models.IntegerField()

class OrderToModel(polymorphicModel):
    id = models.AutoField(primary_key=True)

class WarehouseModel(OrderToModel):
    warehouse_num = models.IntegerField(unique=True)
    name = models.CharField(max_length=100)
    address = models.TextField()
    articles = models.ManyToManyField(ArticleModel,blank=True)
    def __str__(self):
        return "Warehouse"+ str(self.warehouse_num)

class StoreOrderModel(OrderToModel):
    reference = models.IntegerField(unique=True)
    store_num = models.ForeignKey('StoreModel',on_delete=models.CASCADE)
    def __str__(self):
        return str(self.reference)

class StoreModel(models.Model):
    store_num = models.IntegerField(primary_key=True)
    name = models.CharField(max_length=100)
    address = models.TextField()
    articles = models.ManyToManyField(ArticleModel,blank=True)
    def __str__(self):
        return str(self.store_num)

class BusinessOrderModel(OrderToModel):
    reference = models.IntegerField(unique=True)
    business_num = models.ForeignKey('BusinessModel',on_delete=models.CASCADE)
    def __str__(self):
        return str(self.reference)
    
class BusinessModel(models.Model):
    Business_num = models.IntegerField(primary_key=True)
    name = models.CharField(max_length=100)
    address = models.TextField()
    articles = models.ManyToManyField(ArticleModel,blank=True)
    def __str__(self):
        return str(self.Business_num)

class DetailModel(models.Model):
    id = models.AutoField(primary_key=True)
    detail = models.TextField()
    order = models.ForeignKey('BusinessOrderModel',related_name="details",on_delete=models.CASCADE)

这是我设置管理页面的方式(这可能是问题的一部分,因为我尝试执行的所有操作都是通过管理执行的):

from django.contrib import admin

from .models import OrderModel,usermodel,ArticleModel,\
     WarehouseModel,StoreModel,BusinessModel,DetailModel,\
         StoreOrderModel,BusinessOrderModel

class UserAdmin(admin.ModelAdmin):
    pass
admin.site.register(usermodel,UserAdmin)

class DetailInline(admin.TabularInline):
    model = DetailModel


class OrderAdmin(admin.ModelAdmin):
    pass
admin.site.register(OrderModel,OrderAdmin)

class ArticleAdmin(admin.ModelAdmin):
    pass
admin.site.register(ArticleModel,ArticleAdmin)

class WarehouseAdmin(admin.ModelAdmin):
    pass
admin.site.register(WarehouseModel,WarehouseAdmin)

class StoreAdmin(admin.ModelAdmin):
    pass
admin.site.register(StoreModel,StoreAdmin)

class BusinessAdmin(admin.ModelAdmin):
    pass
admin.site.register(BusinessModel,BusinessAdmin)

class StoreOrderAdmin(admin.ModelAdmin):
    pass
admin.site.register(StoreOrderModel,StoreOrderAdmin)

class BusinessOrderAdmin(admin.ModelAdmin):
    inlines = (DetailInline,)
    pass
admin.site.register(BusinessOrderModel,BusinessOrderAdmin)

class DetailAdmin(admin.ModelAdmin):
    pass
admin.site.register(DetailModel,DetailAdmin)

我不知道我做错了什么。我真的觉得卡住了。任何帮助将不胜感激。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?
Java在半透明框架/面板/组件上重新绘画。
Java“ Class.forName()”和“ Class.forName()。newInstance()”之间有什么区别?
在此环境中不提供编译器。也许是在JRE而不是JDK上运行?
Java用相同的方法在一个类中实现两个接口。哪种接口方法被覆盖?
Java 什么是Runtime.getRuntime()。totalMemory()和freeMemory()?
java.library.path中的java.lang.UnsatisfiedLinkError否*****。dll
JavaFX“位置是必需的。” 即使在同一包装中
Java 导入两个具有相同名称的类。怎么处理?
Java 是否应该在HttpServletResponse.getOutputStream()/。getWriter()上调用.close()?
Java RegEx元字符(。)和普通点?