(对不起,我的英语不好)
我需要删除一个对象,但直接从模板中的对象列表中删除。
我有一个工作订单,其中有备件,但我不知道如何仅使用工作订单明细视图中的按钮为备件创建删除视图。这个想法是用户点击删除按钮。
这是备件模型
class OrderSparePart(models.Model):
# Relations
workorder = models.ForeignKey(
WorkOrder,
verbose_name=_('order'),
)
# Attributes - Mandatory
spare_part = models.CharField(
max_length=80,
verbose_name=_('spare part'),
)
# Attributes - Optional
price = models.DecimalField(
max_digits=6,
decimal_places=2,
null=True,
blank=True,
verbose_name=_('price'),
)
# Object Manager
# Custom Properties
# Methods
def get_absolute_url(self):
return reverse('work_orders:detail', kwargs={'order_id': self.workorder.id})
# Meta and String
class Meta:
verbose_name = _("order spare part")
verbose_name_plural = _("order spare parts")
Run Code Online (Sandbox Code Playgroud)
这是模板中显示的位置
{% if spare_parts %}
<table class="table">
<thead>
<tr>
<th>{% trans "Spare …Run Code Online (Sandbox Code Playgroud) 我在Django中遇到选择字段的问题.我需要一个表单来为工单添加订单移动.
这些是choices.py中的选择
STATUS_CHOICES = (
(1, ("Orden Creada")),
(2, ("En Tienda Asociada")),
(3, ("Recibida en Cuyotek")),
(4, ("En Mesa de Trabajo")),
(5, ("Trabajo completado")),
(6, ("Sin Solución")),
(7, ("Lista para retirar en Cuyotek")),
(8, ("Lista para retirar en Tienda Asociada")),
(9, ("Es necesario contactar al cliente")),
(10, ("En espera de Repuestos")),
(20, ("ENTREGADA")),
)
Run Code Online (Sandbox Code Playgroud)
如果用户不是员工,我需要限制选项只显示"8和20".
这是models.py中的模型
class OrderMovements(models.Model):
fk_workorder = models.ForeignKey(WorkOrder)
status = models.IntegerField(choices=STATUS_CHOICES, default=1)
timestamp = models.DateTimeField(auto_now_add=True, auto_now=False)
def __str__(self):
return str(self.fk_workorder)
Run Code Online (Sandbox Code Playgroud)
这是forms.py中的表单
class AddMovementForm(forms.ModelForm):
class Meta:
model = …Run Code Online (Sandbox Code Playgroud) (首先抱歉我的英语不好)当用户保存更改时,我正试图在UpdateView中显示一条消息!
这是我的观点
class NeedUpdateView(UpdateView):
model = Need
template_name = 'purchases/needs_update_form.html'
pk_url_kwarg = 'need_id'
success_message = 'List successfully saved!!!!'
fields = [
'detail',
]
Run Code Online (Sandbox Code Playgroud)
保存应用程序时加载相同的模板!但我喜欢在保存对象时显示引导警报!
这是模板中用于显示消息的代码
{% if messages %}
<div class="alert alert-success">
{% for m in messages %}
<li{% if message.tags %} class="{{ message.tags }}"{% endif %}>{{ m }}</li>
{% endfor %}
</div>
{% endif %}
Run Code Online (Sandbox Code Playgroud)
并在设置中添加此项
MESSAGE_STORAGE = 'django.contrib.messages.storage.session.SessionStorage'
Run Code Online (Sandbox Code Playgroud)
但我不能显示消息!对象的更改保存正常只需要显示消息!
编辑:我在这里显示我的设置,以显示我按照文档中的所有步骤
MIDDLEWARE = [
'django.middleware.security.SecurityMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.locale.LocaleMiddleware',
'django.middleware.common.CommonMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.clickjacking.XFrameOptionsMiddleware',
]
DJANGO_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes', …Run Code Online (Sandbox Code Playgroud) 我有一个问题,我在模型中做了一些更改,因为我有一个整数字段必须更改为ForeignKey
derived_to对于错误,我将值 1分配给字段中的所有对象。
我现在想将此列中的所有行标记为空。我怎样才能做到这一点?这是我最后两次迁移
class Migration(migrations.Migration):
dependencies = [
('work_order', '0026_auto_20170603_1517'),
]
operations = [
migrations.AlterModelOptions(
name='workorder',
options={'verbose_name': 'work order', 'verbose_name_plural': 'work orders'},
),
migrations.AlterField(
model_name='workorder',
name='derived_to',
field=models.ForeignKey(default=1, on_delete=django.db.models.deletion.CASCADE, to='store.OutsourceOption', verbose_name='outsource'),
preserve_default=False,
),
]
Run Code Online (Sandbox Code Playgroud)
还有最后一张
class Migration(migrations.Migration):
dependencies = [
('work_order', '0027_auto_20170605_0836'),
]
operations = [
migrations.AlterField(
model_name='workorder',
name='derived_to',
field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to='store.OutsourceOption', verbose_name='outsource'),
),
]
Run Code Online (Sandbox Code Playgroud)
好吧,这就是我需要进行新的迁移以将 null 分配给列中 work_order 中的所有对象derived_to,因为现在所有对象都derived_to指向 OutsourceOptions 上的第一个寄存器,这是不正确的。
谢谢并为我糟糕的英语感到抱歉。
(对不起,我的英语不好)
我想知道是否存在任何方法可以从 django admin 的用户列表中隐藏超级用户,如果查看列表的用户不是超级用户?
谢谢!
我在为新对象分配外键属性时遇到问题.当我试图让我得到这个错误
无法分配"(<ConceptType:Producto>,)":"Receipt.concept"必须是"ConceptType"实例.
嗯,这是视图中的代码
if form.is_valid():
receipt = form.save(commit=False)
receipt.concept = ConceptType.objects.get(id=1),
Run Code Online (Sandbox Code Playgroud)
这是用于使用django-afip创建收据(https://gitlab.com/WhyNotHugo/django-afip)
谢谢