Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typo3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 在Django Admin中更新表关系_Python_Django_Database_Django Models_Django Admin - Fatal编程技术网

Python 在Django Admin中更新表关系

Python 在Django Admin中更新表关系,python,django,database,django-models,django-admin,Python,Django,Database,Django Models,Django Admin,我正在尝试创建一个网站目录,我是Django的新手。我需要的是:一个网站可以有许多支付处理器和一个支付处理器(贝宝,Payza等)可以属于许多网站。我试图创建一个表关系来表示这一点。我的模型是这样的: # Models.py class Sites(models.Model): name = models.CharField(max_length=75) link = models.CharField(max_length=150) description = model

我正在尝试创建一个网站目录,我是Django的新手。我需要的是:一个网站可以有许多支付处理器和一个支付处理器(贝宝,Payza等)可以属于许多网站。我试图创建一个表关系来表示这一点。我的模型是这样的:

# Models.py
class Sites(models.Model):
    name = models.CharField(max_length=75)
    link = models.CharField(max_length=150)
    description = models.TextField(blank=True, null=True)

    def __str__(self):
        return self.name

class PaymentProcessors(models.Model):
    name = models.CharField(max_length=75)

    def __str__(self):
        return self.name

class Sites_PaymentProcessors(models.Model):
    site = models.ManyToMany(Sites)
    payment_processor = models.ManyToMany(PaymentProcessors)
首先,我想知道我的模型是否正确。如果没有,我如何修复它


其次,我正在使用Django Admin site创建站点和支付处理程序,当我添加新站点时,如何使用
站点
支付处理程序
之间的关系自动填充我的
站点
支付处理程序表?

我会稍微更改模型以适应

现在,如果您想要自定义字段或随关系存储更多信息,可以使用

例如,如果要关联金额限制或更自定义的内容:

class Sites(models.Model):
    name = models.CharField(max_length=75)
    link = models.CharField(max_length=150)
    description = models.TextField(blank=True, null=True)

    def __str__(self):
        return self.name

class PaymentProcessors(models.Model):
    name = models.CharField(max_length=75)
    sites = models.ManyToManyField('Sites', related_name='payment_processors', through='SitePaymentProcessor')

    def __str__(self):
        return self.name

from django.core.validators import MaxValueValidator
class SitePaymentProcessor(models.Model):
    site = models.ForeignKey('Site')
    payment_processors = models.ForeignKey('PaymentProcessors')
    amount_limit = models.IntegerField(default=1000,
        validators=[
            MaxValueValidator(100)
        ])
现在,这只是一个例子

现在,您可以通过管理界面将数据填充到模型中

< >自动填充大型数据集,我会考虑使用而不是单独填充元素。
class Sites(models.Model):
    name = models.CharField(max_length=75)
    link = models.CharField(max_length=150)
    description = models.TextField(blank=True, null=True)

    def __str__(self):
        return self.name

class PaymentProcessors(models.Model):
    name = models.CharField(max_length=75)
    sites = models.ManyToManyField('Sites', related_name='payment_processors', through='SitePaymentProcessor')

    def __str__(self):
        return self.name

from django.core.validators import MaxValueValidator
class SitePaymentProcessor(models.Model):
    site = models.ForeignKey('Site')
    payment_processors = models.ForeignKey('PaymentProcessors')
    amount_limit = models.IntegerField(default=1000,
        validators=[
            MaxValueValidator(100)
        ])