我想通过ORM运行django更新,看起来像这样:
MyModel.objects.filter(**kwargs).update(my_field=F('my_other_field')+'a string')
Run Code Online (Sandbox Code Playgroud)
这会导致MySQL抛出异常.反正有没有编写原始SQL吗?
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上述问题.我知道它会导致错误,但不知道如何处理这个问题.
我有两个领域的模型:
class Event(models.Model):
date = models.DateField(_(u'Date'))
time = models.TimeField(_(u'Time'))
Run Code Online (Sandbox Code Playgroud)
我需要找到日期和时间在24小时后的所有对象.
我可以在使用DateTime字段时执行此操作,但我不确定如何在字段分隔时实现此目的.提前致谢.
我在设置默认字段值时遇到问题.我想做的事?
我希望类包中的价格是类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)
非常感谢!!!
这是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_display从get_list_display方法中动态生成,否则Django会在启动时抛出错误,抱怨模型中name没有定义Child.但是,在运行时,只要从数据库中实例化对象,就name应该可以在__init__方法中设置它.
但是,当我尝试加载管理页面时,我收到错误:
Unable to lookup 'name' on Child or ChildAdmin
Run Code Online (Sandbox Code Playgroud)
是什么赋予了?