我在我的一个管理模型中有一些内联,它们具有默认值,当使用"添加另一个..."添加新实例时可能不需要更改.不幸的是,除非某些值发生变化,否则django不会将这些内联识别为新对象.这会强制我添加内联,更改任意值,保存,更改值并再次保存以达到所需效果.
到目前为止我唯一提出的解决方案是添加一个隐藏的"已更改"字段,它将在添加新内联时通过java脚本填充.因为这感觉非常hackish,我希望有一个更优雅的解决方案.
任何想法将不胜感激.
谢谢,丹尼尔.
我有一个简单的应用程序(关于QR码),我有两个模型.第一个用于定义QR码,第二个用于赋予其功能.(对于那些想知道的人:我把它分成两个模型,因为我们的QR码很复杂,有时缺乏功能而且是只读的.我想尽可能地保持我们的数据库规范化.)这是模型(models.py):
from django.core.exceptions import ObjectDoesNotExist
from django.db import models
from django.utils.translation import ugettext_lazy as _
from core.behaviors import QRCodeable, UniversallyUniqueIdentifiable
from core.utils import QR_CODE_FUNCTIONS
from model_utils.fields import StatusField
from model_utils.models import SoftDeletableModel, TimeStampedModel
QR_CODE_PREFIX = "QR Code"
QR_CODE_FUNCTION_PREFIX = "Function"
QR_CODE_FUNCTION_MIDFIX = "for"
class QRCode(
UniversallyUniqueIdentifiable,
SoftDeletableModel,
TimeStampedModel,
models.Model
):
@property
def function(self):
try:
return self.qrcodefunction.qr_code_function
except ObjectDoesNotExist:
return ""
class Meta:
verbose_name = _('QR code')
verbose_name_plural = _('QR codes')
def __str__(self):
return f'{QR_CODE_PREFIX} {self.uuid}'
class QRCodeFunction(
UniversallyUniqueIdentifiable,
SoftDeletableModel,
TimeStampedModel, …Run Code Online (Sandbox Code Playgroud)