小编not*_*ius的帖子

Django - 默认字段值取决于其他字段值


我在设置默认字段值时遇到问题.我想做的事?
我希望类包中的价格是类Bill中priceNoTax的默认值.如您所见,所有三个类都是逻辑连接的.
示例:帐户1有一个ID为1的软件包.此软件包的价格为100.帐户1的priceNoTax的默认值为100.

如何做?我是相对较新的,所以我需要帮助.

models.py

class Packages(models.Model):
     #other fields
     price = models.IntegerField(validators=[MinValueValidator(1)], verbose_name="Price of package")

class Account(models.Model):
     startDate = models.DateField(verbose_name="Start date")
     finishDate = models.DateField(verbose_name="Finish date")
     idPackage = models.ForeignKey(Packages, on_delete=models.CASCADE, verbose_name="Package")

class Bill(models.Model):
     date = models.DateField(default=datetime.now())
     tax = models.FloatField(default=0.20)
     priceNoTax = models.IntegerField()
     priceTax = models.FloatField(default=priceNoTax+(priceNoTax*tax))
     idAccount = models.ForeignKey(Account, on_delete=models.CASCADE, verbose_name="Account")

     def __str__(self):
         return self.date
Run Code Online (Sandbox Code Playgroud)

非常感谢!!!

python django default-value

8
推荐指数
2
解决办法
1892
查看次数

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


我有用于在数据库中添加数据的表单,我想限制下拉菜单中的外键选择。它必须限制在我的 finishDate 字段中。如果 finishDate 是今天之前的日期(例如,今天是 21-08-2016,finishDate 是 30-06-2013),那么我不想显示该 finishDate 的外键值。做到这一点最简单的方法是什么?我对此比较陌生,所以我需要帮助。

模型.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)
Run Code Online (Sandbox Code Playgroud)

表格.py

class NetForm(ModelForm):
     class Meta:
         model = Net
         fields = ['idAccount']
Run Code Online (Sandbox Code Playgroud)

视图.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})
Run Code Online (Sandbox Code Playgroud)

多谢!

python django date dropdown

0
推荐指数
1
解决办法
1337
查看次数

标签 统计

django ×2

python ×2

date ×1

default-value ×1

dropdown ×1