简体   繁体   中英

TypeError: Field 'id' expected a number but got <User: 1>

This is my model.py file. I don't 'python manage.py migrat' understand what is this problem....

models.py:

class Myclabusers(models.Model):
    first_name =  models.CharField('first_name', max_length=100 ,default='')
    last_name  =  models.CharField('last_name', max_length=100, default='')
    email      =  models.EmailField('user email',default='')

    def __str__(self):
        return self.first_name +' '+self.last_name

class Venue(models.Model):
    name     =  models.CharField('venue name' , max_length=100)
    address  =  models.CharField('address' , max_length=500)
    zip_code =  models.CharField('zip code' , max_length=20)
    phone    =  models.CharField('phone no.' , max_length=15)
    wab      =  models.URLField('url' , max_length=100,default='http://')
    email    =  models.EmailField('email' , max_length=30)
    venue_owner = models.IntegerField('venue_owner' , blank=False, default=1)
    
    def __str__(self):
        return self.name


class Event(models.Model):
    event_name  = models.CharField('event name' , max_length=100)
    event_date  = models.DateField('event time' )
    venue       = models.ForeignKey(Venue, blank=True, null=True,on_delete=models.CASCADE)
    manager     = models.ForeignKey(User,default=User, on_delete=models.SET_NULL,null=True)
    description = models.TextField(blank=True)
    attendens   = models.ManyToManyField(Myclabusers, blank=True )

    def __str__(self):
        return self.event_name + ' at '+ self.venue.name
   

包含错误消息的控制台输出

you need to change this line

manager     = models.ForeignKey(User,default=User, on_delete=models.SET_NULL,null=True)

to

manager     = models.ForeignKey(User,default=1, on_delete=models.SET_NULL,null=True)

you cant pass User Model as a default value, either the ID of the user in the database as a default value which is integer else remove the default value totally

You can not define "User" as default. Default must be an id in this line of your "Event" model:

manager = models.ForeignKey(User,default=User, on_delete=models.SET_NULL,null=True)

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM