Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/320.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_Date_Dropdown - Fatal编程技术网

Python Django-如何根据数据时间字段限制下拉菜单中的外键选择

Python Django-如何根据数据时间字段限制下拉菜单中的外键选择,python,django,date,dropdown,Python,Django,Date,Dropdown,我有在数据库中添加数据的表单,我想在下拉菜单中限制外键选择。它必须限制在我的finishDate字段中。如果finishDate是今天之前的日期(例如,今天是2016年8月21日,finishDate是2013年6月30日),那么我不想显示该finishDate的外键值。最简单的方法是什么?我在这方面比较新,所以我需要帮助 models.py class Account(models.Model): startDate = models.DateField(verbose_name="


我有在数据库中添加数据的表单,我想在下拉菜单中限制外键选择。它必须限制在我的finishDate字段中。如果finishDate是今天之前的日期(例如,今天是2016年8月21日,finishDate是2013年6月30日),那么我不想显示该finishDate的外键值。最简单的方法是什么?我在这方面比较新,所以我需要帮助

models.py

class Account(models.Model):
     startDate = models.DateField(verbose_name="Start")
     finishDate = models.DateField(verbose_name="Finish")

     def __str__(self):
         return 'A{}'.format(self.id)

 class Net(models.Model):
     date = models.DateTimeField(default=datetime.now())
     MB = models.IntegerField(validators=[MinValueValidator(1)],default=randint(100,2000))
     idAccount = models.ForeignKey(Account, on_delete=models.CASCADE, verbose_name="Account")

     def __str__(self):
         return 'Record {}'.format(self.datum)
forms.py

class NetForm(ModelForm):
     class Meta:
         model = Net
         fields = ['idAccount']
views.py

@login_required(login_url="/accounts/login/")
def net(request):
    if request.method == 'POST':

        form = NetForm(request.POST)

        if form.is_valid():
            internet = form.save()
            return HttpResponseRedirect('/')

    else:
        form = NetForm()

    return render(request, 'project/Net.html', {'form': form})

非常感谢

您可以在
\uuuuu init\uuuu

import datetime

def NetForm(forms.ModelForm):
    #...fields
    def __init__(self, *args, **kwargs):
        super(NetForm, self).__init__(*args, **kwargs)
        # Now set the queryset...
        self.fields['idAccount'].queryset = Account.objects.filter(finishDate__gte=datetime.datetime.now())

您可以在
\uuuu init\uuuu

import datetime

def NetForm(forms.ModelForm):
    #...fields
    def __init__(self, *args, **kwargs):
        super(NetForm, self).__init__(*args, **kwargs)
        # Now set the queryset...
        self.fields['idAccount'].queryset = Account.objects.filter(finishDate__gte=datetime.datetime.now())