【发布时间】:2016-06-17 03:39:03
【问题描述】:
我正在使用模型中的字段,其中字段的值取决于表单中前一个字段中的选定选项(目前通过 django 管理员),我正在使用django-smart-selects
我会分享this video,以便更好地了解我的问题或情况,以及询问与我在此场景中工作的领域相关的应用调试或净化方式的原因。
视频中的父字段
Segmento afectado让我多选视频中的子字段
Movimiento,详细说明了受影响的片段(在父字段中选择)可以执行的动作
我的情况
在视频中详细说明了当我在父字段中仅选择受影响的段时,在子字段中部署移动选项,并且我的 Django 服务器的日志控制台出现 @987654326 @ 使用
GET操作,向我表明可以成功获取和部署与父字段中选择的受影响段相对应的动作-
但是,当我在父字段中选择多个受影响的段时(如果我在转发中选择两个或更多段),我的 django 服务器在控制台立即显示
status code HTTP/1.1 404(Not Foundin黄色),因为不执行用户选择的第二个选择或第二个受影响的段,因此也不会部署或出现在子字段中,这些第二个受影响的段可以执行的相关动作
我不知道如何解决这种情况,因为在 django 管理员内部表示父 (Segmento Afectado) 和子 (Movimiento) 字段的这种形式。
我有一个名为AffectedSegment 的模型和另一个名为Movement 的模型,通过django-smart-selects 的ChainedManyToManyField 的功能是如何根据中的选择获取子字段中部署的值的方法父字段。
我的模型和这种行为的价值链是:
class AffectedSegment(models.Model):
SEGMENTO_ESCAPULA = 'ESCAPULA'
SEGMENTO_HOMBRO = 'HOMBRO'
SEGMENTO_CODO = 'CODO'
SEGMENTO_ANTEBRAZO = 'ANTEBRAZO'
SEGMENTO_CARPO_MUNECA = 'CARPO_MUNECA'
SEGMENTO_MANO = 'MANO'
SEGMENTO_CHOICES = (
(SEGMENTO_ESCAPULA, u'Escápula'),
(SEGMENTO_HOMBRO, u'Hombro'),
(SEGMENTO_CODO, u'Codo'),
(SEGMENTO_ANTEBRAZO, u'Antebrazo'),
(SEGMENTO_CARPO_MUNECA, u'Carpo/Muñeca'),
(SEGMENTO_MANO, u'Mano'),
)
affected_segment = models.CharField(max_length=12, choices=SEGMENTO_CHOICES, blank=False, verbose_name='Segmento afectado')
class Meta:
verbose_name = 'Segmentos corporale'
def __str__(self):
return "%s" % self.affected_segment
class Movement(models.Model):
type = models.CharField(max_length=255,verbose_name='Tipo de movimiento')
corporal_segment_associated = models.ManyToManyField(AffectedSegment, blank=False, verbose_name='Segmento corporal asociado')
class Meta:
verbose_name = 'Movimiento'
def __str__(self):
return "%s" % self.type
而我得到子字段中的动作与父字段上的选择一致的方式是这样执行的:
class RehabilitationSession(models.Model):
affected_segment = models.ManyToManyField(AffectedSegment,verbose_name='Segmento afectado')
movement = ChainedManyToManyField(
Movement, #Modelo encadenado
chained_field = 'affected_segment',
chained_model_field = 'corporal_segment_associated',
verbose_name='Movimiento'
)
class Meta:
verbose_name = 'Sesiones de Rehabilitación'
def __str__(self):
return "%s" % self.affected_segment
我不知道如何解决这种情况。 我还有什么其他选择? JS,一些框架forntend? 另一个 django 应用?
任何支持,关于它的指导,将不胜感激
:D
【问题讨论】:
标签: django django-models django-forms django-admin django-smart-selects