我正在为会计测量工具编写代码。移动压力表时,需要更新安装对象。告诉我如何更改所选测量工具的 location = models.ManyToManyField,这是我使用表单中的 POST 方法收到的。
模型.py
class Si(models.Model):
name_si = models.CharField(max_length=100, verbose_name="Наименование СИ")
location = models.ManyToManyField('Location', verbose_name="Место монтажа")
class Location(models.Model):
shop = models.ForeignKey('Shop', on_delete=models.PROTECT, verbose_name="Цех", null=True)
field = models.ForeignKey('Field', on_delete=models.PROTECT, verbose_name="Месторождение", null=True)
object = models.ForeignKey('Object', on_delete=models.PROTECT, verbose_name="Объект", null=True)
表格.py
class UpdateLocationForm(forms.Form):
location = forms.ModelChoiceField(queryset=Location.objects.all(), label="Место монтажа", empty_label="Выбери объект")
视图.py
def device(request, device_id):
if request.method =="POST":
form = UpdateLocationForm(request.POST)
if form.is_valid():
print(form.cleaned_data)
Si.objects.filter(pk=device_id)
*.html
<div>
<button class="show-dialog-button" type="button">Изменить место монтажа</button>
</div>
<dialog class="dialog-box">
<form action="" method="POST">
{% csrf_token %}
{{ form.as_p }}
<p><button type="submit"> Изменить </button> </p>
</form>
</dialog>
你可以这样做