相关疑难解决方法(0)

我可以使用字符串连接的Django F()对象吗?

我想通过ORM运行django更新,看起来像这样:

MyModel.objects.filter(**kwargs).update(my_field=F('my_other_field')+'a string')
Run Code Online (Sandbox Code Playgroud)

这会导致MySQL抛出异常.反正有没有编写原始SQL吗?

python mysql django

33
推荐指数
3
解决办法
1万
查看次数

创建一个字段,其值是其他字段值的计算

class PO(models.Model)
    qty = models.IntegerField(null=True)
    cost = models.IntegerField(null=True)
    total = qty * cost
Run Code Online (Sandbox Code Playgroud)

我将如何解决total = qty * cost上述问题.我知道它会导致错误,但不知道如何处理这个问题.

python django

19
推荐指数
2
解决办法
1万
查看次数

查找日期和时间少于24小时的对象

我有两个领域的模型:

class Event(models.Model):
    date = models.DateField(_(u'Date'))
    time = models.TimeField(_(u'Time'))
Run Code Online (Sandbox Code Playgroud)

我需要找到日期和时间在24小时后的所有对象.

我可以在使用DateTime字段时执行此操作,但我不确定如何在字段分隔时实现此目的.提前致谢.

python django django-models django-orm

12
推荐指数
3
解决办法
1195
查看次数

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 - 为什么我不能在来自admin.py的models.py中的类中访问动态生成的属性?

这是models.py:

class Parent(models.Model):
    id        = models.CharField(max_length=14, primary_key=True)
    json_dump = models.TextField(null=False)

    def __init__(self, *args, **kwargs):
        super(Base, self).__init__(*args, **kwargs)
        setattr(self, 'name', json.loads(self.json_dump)['name'])

    class Meta:
        abstract = True


class Child(Parent):
    magnitude  = models.IntegerField()
Run Code Online (Sandbox Code Playgroud)

在我的admin.py我想配置管理员为Child name显示属性,所以我有以下内容:

class ChildAdmin(admin.ModelAdmin):
    model = Child

    def get_list_display(self, request):
        return ('id', 'name', 'magnitude')


admin.site.register(Child, ChildAdmin)
Run Code Online (Sandbox Code Playgroud)

我必须list_displayget_list_display方法中动态生成,否则Django会在启动时抛出错误,抱怨模型中name没有定义Child.但是,在运行时,只要从数据库中实例化对象,就name应该可以在__init__方法中设置它.

但是,当我尝试加载管理页面时,我收到错误:

Unable to lookup 'name' on Child or ChildAdmin
Run Code Online (Sandbox Code Playgroud)

是什么赋予了?

django django-models django-admin django-1.7

3
推荐指数
1
解决办法
2837
查看次数