Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/342.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表格问题_Python_Django_Forms_Models - Fatal编程技术网

Python Django表格问题

Python Django表格问题,python,django,forms,models,Python,Django,Forms,Models,您好,我有一个django应用程序,它有一个表单,您可以添加销售和购买。我想用它做个改变。如果用户选择购买而不是销售,我不希望他们有国家类型的位置。事实上,我不希望他们有任何价值的购买 因此,要概括地说,所有销售都应该有一个选择国家/地区类型的选项,而所有Puchase不应该有这个选项。我该怎么做 models.py forms.py 这个问题实际上与django无关。您应该通过javascript实现这一点:根据值隐藏或显示一些字段 唯一的问题是表单验证。在您的案例中,您应该这样执行: 从dj

您好,我有一个django应用程序,它有一个表单,您可以添加销售和购买。我想用它做个改变。如果用户选择购买而不是销售,我不希望他们有国家类型的位置。事实上,我不希望他们有任何价值的购买

因此,要概括地说,所有销售都应该有一个选择国家/地区类型的选项,而所有Puchase不应该有这个选项。我该怎么做

models.py

forms.py


这个问题实际上与django无关。您应该通过javascript实现这一点:根据值隐藏或显示一些字段

唯一的问题是表单验证。在您的案例中,您应该这样执行:

从django.core.exceptions导入ValidationError 类Transactionmodels。模型: 你的领域 def cleanself: 如果self.transaction\u type==2且self.country\u type: raise ValidationErroru“您不能用购买选项填充位置。”
您应该为此使用javascript。如果您使用的是{{form.as_table}},那么通过使用jQuery,它将如下所示:

<script type="text/javascript">
    $(function() {
        showOrHideLocation();
        $('#id_transaction_type').change(showOrHideLocation);
    });
    function showOrHideLocation() {
        if ($('#id_transaction_type option:selected[value=1]').length) {
            $('#id_country_type').parents('tr:first').show();
        }
        else {
            $('#id_country_type').parents('tr:first').hide();
        }
    }
</script>

然后在表单中验证您的结果

最简单的解决方案似乎是一个两阶段的过程。两种形式之一,第一种是类型,第二种是特定字段;或者使用Ajax动态修改表单。由于销售和购买是如此完全不同,一个表单如何涵盖这两种情况让我感到困惑。你为什么要用一个令人困惑的表格来做这件事?@S.Lott:我像你说的那样创建了两个表格。为销售创建I,为采购创建另一个I。我将以这种方式离开,而不是做更复杂的事情
from management_sys.vat.models import *
from django import forms

class TransactionForm(forms.ModelForm):
    class Meta:
        model = Transaction
<script type="text/javascript">
    $(function() {
        showOrHideLocation();
        $('#id_transaction_type').change(showOrHideLocation);
    });
    function showOrHideLocation() {
        if ($('#id_transaction_type option:selected[value=1]').length) {
            $('#id_country_type').parents('tr:first').show();
        }
        else {
            $('#id_country_type').parents('tr:first').hide();
        }
    }
</script>