2016-07-15 2 views
0

왜 django-admin, raw_id_fields가 관련 필드 오류를 반환하는지 알 수 없습니다. 내가 한 일과 결과없이 시도한 여러 가지 방법을 설명하겠습니다.raw_id_fields raise error 관련 필드에 잘못된 조회가 있습니다. icontains

  • 시스템 : 고아
  • 개념 : 고아
  • 추출물이 특별한 경우를 들어

    나는 5 개 가지 모델이 시스템과 관련을, 1 개 추출 1 시스템의 자녀이며, 1 개 시스템이 많은 추출물
  • 매핑 : 시스템과 관련 두 번 : 매핑은 원점이고 다른 하나는 대상인 관계입니다.
  • MappingDestinationExtractConcept : mappi 내에서 즉, 대상 시스템의 특정 추출은 주어진 개념에 대해 "매핑"됩니다.

모든 모델에서 원시 ID를 사용하지만 관리자 검색 엔진을 사용할 때 악명 높은 icontains 오류를 반환하는 모델 에서 문제가 없습니다.

# Models.py 
class System(models.Model): 
    system_name = models.CharField(max_length=20, null=False, verbose_name='System') 
    version = models.CharField(max_length=20, blank=True, verbose_name='Version') 

    class Meta: 
     unique_together = (('system_name', 'version'),) 


class Extract(models.Model): 
    extract_name = models.CharField(max_length=20, null=False, verbose_name='Extract Name') 
    system = models.ForeignKey(System, related_name='extracts', on_delete=models.CASCADE, verbose_name='System') 

    def __str__(self): 
     return 'Mapping of {} into {}'.format(self.mapping_system, self.destination_system) 

    class Meta: 
     unique_together = (('extract_name', 'system'),) 


class Mapping(models.Model): 
    destination_system = models.ForeignKey(System, on_delete=models.CASCADE, related_name='mappings', 
              verbose_name='Destination System') 
    mapping_system = models.ForeignKey(System, on_delete=models.CASCADE, related_name='maps_into', 
             verbose_name='Input System') 
    mapping_description = models.TextField(blank=True, null=True) 

    class Meta: 
    unique_together = (('mapping', 'destination_extract', 'mapping_concept'),) 


class MappingTargetTableConceptSources(models.Model): 
    mapping_target_table_concept = models.ForeignKey(MappingTargetTableConcept, on_delete=models.CASCADE, 
               related_name='is_used', verbose_name='Mapping Concept') 
    destination = models.ForeignKey(Extract, on_delete=models.CASCADE, verbose_name='Source Table') 

    class Meta: 
     unique_together = (('mapping_target_table_concept', 'source',),) 

admin.py에, 나는 단순히 관리자가 검색을위한 확대경을 보여줍니다

# admin.py 
class MappingTargetTableConceptManager(admin.ModelAdmin): 
    raw_id_fields = ('destination_extract',) 

admin.site.register(MappingTargetTableConcept, MappingTargetTableConceptManager) 

MappingTargetTableConcept의 대상 추출물, 팝업 쇼에 원시 ID로 전화를 걸 있지만, 내가 원하는 (또는 무엇이든) 추출물을 팝업으로 들여다 볼 때. 콘솔에서이 ... 더 성공 ('destination_extract__extract_name') Extract.objects.filter(extract_name__icontains='Contract')

내가 raw_id_fields =`의 raw_id를 교체하려고 작동하지 않습니다

답변

0

나는 .. 문제 (또는 적어도 식으로 문제를 해결할 수 있었다

:

class ExtractManager2(admin.ModelAdmin):   
    search_fields = ('system', 'extract_name', 'tech_name', 'description',) 

나는이 점을 변경하는 경우 : 고정있어 내가 가진 추출물의 관련 modeladmin)

의 검색 필드에 있었다

class ExtractManager2(admin.ModelAdmin):   
    search_fields = ('extract_name',) 

작동 ..

관련 문제