Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/19.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
django仅允许在更新时向m2m字段添加新项_Django_Python 3.x_Django Models_Django Forms_Django Views - Fatal编程技术网

django仅允许在更新时向m2m字段添加新项

django仅允许在更新时向m2m字段添加新项,django,python-3.x,django-models,django-forms,django-views,Django,Python 3.x,Django Models,Django Forms,Django Views,我有一个m2m字段作为- sizes = models.ManyToManyField(Size,blank=True,related_name='doto_sizes', default=5) 我正在使用通用更新视图更新模型,但我想要的是,在更新尺寸时,用户只能添加新尺寸。不允许他/她删除初始尺寸 为了使之成为可能,我可以在clean方法中定义自定义验证,但我在这里是因为django可能已经为此内置了方法 我甚至不希望用户可以在更新表单中删除初始的大小,我如何才能做到这一点?您可以添

我有一个m2m字段作为-

    sizes = models.ManyToManyField(Size,blank=True,related_name='doto_sizes', default=5)
我正在使用通用更新视图更新模型,但我想要的是,在更新
尺寸时,用户只能添加新尺寸。不允许他/她删除初始尺寸

为了使之成为可能,我可以在
clean
方法中定义自定义验证,但我在这里是因为django可能已经为此内置了方法


我甚至不希望用户可以在更新表单中删除初始的
大小,我如何才能做到这一点?

您可以添加到对您的模型的质疑。py?我可以,但您能告诉我这对您有什么帮助吗?问题本身就很清楚。好的,您可以通过指定m2m关系时始终创建的
模型来更新实例。此模型包含两个FK。在您的例子中,一个用于
Size
model,另一个用于创建m2m关系的模型。您可以获得此
YourModelSizeLink=YourModel.SizeLink。通过
并使用此模型可以更新、删除或任何实例。但是最好清楚地创建链接模型,并通过
属性
size=models传递它。许多域(…,通过='YourLinkModel',…)
阅读此链接模型可以帮助您。