У Django в строке нет ForeignKey - PullRequest
0 голосов
/ 27 декабря 2018

У меня сейчас ошибка.Это встроенная ошибка, я пытался найти решение, и я пытался весь день, но безуспешно.Мне жаль, если этот вопрос очень легкий и повторяется.

Это ошибка, когда я пытаюсь использовать inline, она показывает

<class 'brick.admin.AdminRoomStateInline'>: (admin.E202) 
'brick.RoomInfomation' has no ForeignKey to 'brick.RoomInfomation'    

models.py

class RoomInfomation(models.Model):

    roomNum = models.PositiveSmallIntegerField(default=0, primary_key=True)
    roomFloor = models.PositiveSmallIntegerField(default=0)
    startPointX = models.PositiveSmallIntegerField(default=0)
    startPointY = models.PositiveSmallIntegerField(default=0)
    #referencing 
    userInfo_RoomReservationFK = models.ForeignKey('UserInfo', null=True, blank=True)
    compInfo_RoomInfoFK = models.ForeignKey('CompanyInfomations', on_delete=models.CASCADE)
    companyRoomTypeInfo_RoomInfoFK = models.ForeignKey('CompanyRoomTypeInfomations', on_delete=models.CASCADE)

def __unicode__(self):
    return '%s' % str(self.PositiveSmallIntegerField)

class RoomState(models.Model):
    roomReservation_roomStateFK = models.ForeignKey('RoomInfomation')
    reservationBlock = models.BooleanField(default=False)
    reservated = models.BooleanField(default=False)                                         
    reservatedDate = models.DateField(blank=True, null=True)
    reservationFirstDate = models.DateField(blank=True, null=True)
    reservationEndDate = models.DateField(blank=True, null=True)
    checkoutTime = models.DateField(blank=True, null=True)
    checkinTime = models.DateField(blank=True, null=True)

admin.py

class AdminRoomStateInline(admin.TabularInline):
    model = RoomInfomation
    extra = 8
#    list_display = [
#              'roomReservation_roomStateFK',
#              'reservationBlock',
#              'reservated',
#              'reservatedDate',#예약을 진행했던 날짜
#              'reservationFirstDate',
#              'reservationEndDate',
#              'checkoutTime',
#              'checkinTime',
#            ]
#    inlines = [AdminRoomInfomationInline,]

class AdminRoomInfomation(admin.ModelAdmin):

    fields = [
          'compInfo_RoomInfoFK',
          'companyRoomTypeInfo_RoomInfoFK',
          'userInfo_RoomReservationFK',
          'startPointX',
          'startPointY', 
          'roomNum',
          'roomFloor'
         ]
    inlines = [AdminRoomStateInline,]


#class RoomState(admin,ModelAdmin):
#admin.site.register(RoomInfomation)
#admin.site.register(RoomState, AdminRoomState)
admin.site.register(UserInfo, AdminUserInfo)   
admin.site.register(RoomInfomation, AdminRoomInfomation)
admin.site.register(RoomState)

Я дважды проверяю, что может не пытаться, например, когда я изменил встроенный

class AdminRoomState

на

class AdminRoomInfomationInline

ошибка

<class 'brick.admin.AdminRoomStateInline'>: (admin.E202) 
'brick.RoomInfomation' has no ForeignKey to 'brick.RoomState' 

1 Ответ

0 голосов
/ 27 декабря 2018

В AdminRoomStateInline вы передаете модель RoomInformation, это должно быть `RoomState.

...