Der Versuch, mein Projekt auf dem Server zu implementieren, und ich in Migrationen bin stecken becouse es einige Fehler ist:Typeerror: int() Argument muss eine Zeichenkette oder eine Zahl sein, nicht ‚Modell Instanz‘ - Heroku
File "/app/.heroku/python/lib/python2.7/site-packages/django/db/backends/base/schema.py", line 382, in add_field
definition, params = self.column_sql(model, field, include_default=True)
File "/app/.heroku/python/lib/python2.7/site-packages/django/db/backends/base/schema.py", line 145, in column_sql
default_value = self.effective_default(field)
File "/app/.heroku/python/lib/python2.7/site-packages/django/db/backends/base/schema.py", line 210, in effective_default
default = field.get_db_prep_save(default, self.connection)
File "/app/.heroku/python/lib/python2.7/site-packages/django/db/models/fields/related.py", line 915, in get_db_prep_save
return self.target_field.get_db_prep_save(value, connection=connection)
File "/app/.heroku/python/lib/python2.7/site-packages/django/db/models/fields/__init__.py", line 728, in get_db_prep_save
prepared=False)
File "/app/.heroku/python/lib/python2.7/site-packages/django/db/models/fields/__init__.py", line 968, in get_db_prep_value
value = self.get_prep_value(value)
File "/app/.heroku/python/lib/python2.7/site-packages/django/db/models/fields/__init__.py", line 976, in get_prep_value
return int(value)
TypeError: int() argument must be a string or a number, not 'Profile'
und hier ist meine models.py Datei:
class Post(models.Model):
author = models.ForeignKey('auth.User')
title = models.CharField(max_length=75)
image = models.ImageField(null=True, blank=True, width_field="width_field", height_field="height_field", upload_to='images') #must be installed Pillow for ImageField
height_field = models.IntegerField(default=0)
width_field = models.IntegerField(default=0)
content = models.TextField()
updated = models.DateTimeField(default=datetime.now())
timestamp = models.DateTimeField(default=datetime.now())
def __str__(self):
return self.title
@receiver(pre_delete, sender=Post)
def post_delete(sender, instance, **kwargs):
# Pass false so FileField doesn't save the model.
if instance.image:
instance.image.delete(False)
class Profile(models.Model):
onlyletters = RegexValidator(r'^[a-zA-Z]*$', 'Only letters are allowed.')
author = models.ForeignKey('auth.User')
name = models.CharField(max_length=20, null = True, validators=[onlyletters])
surname = models.CharField(max_length=25, null = True, validators=[onlyletters])
city = models.CharField(max_length=30, blank=True, validators=[onlyletters])
birth_date = models.DateField(blank=True, null=True, help_text="Can not be more than 100 years - (Format yyyy-mm-dd)")
topic = models.CharField(max_length = 50, null=True)
def __str__(self):
return self.topic
class Favourite(models.Model):
name = models.CharField(max_length=50)
members = models.ManyToManyField(Profile, through='Membership')
def __str__(self): # __unicode__ on Python 2
return self.name
class Membership(models.Model):
author = models.CharField(max_length=50)
profile = models.ForeignKey(Profile, default=Profile)
favourite = models.ForeignKey(Favourite)
created = models.DateTimeField(default=timezone.now)
class Comment(models.Model):
post = models.ForeignKey('blogapp.Post', related_name='comments')
author = models.ForeignKey('auth.User')
text = models.TextField()
created_date = models.DateTimeField(default=timezone.now)
def __str__(self):
return self.text
Ich versuche nur, um etwas frische App auf Heroku zu machen, neue Migrationen machen und olders zu löschen, aber es funktionierte immer noch nicht. Kann jemand wissen, was damit nicht stimmt? Danke für die Antwort.
Danke, es hat funktioniert :) – Damian
@Damian Sie können in Betracht ziehen, wenn es Ihr Problem gelöst hat :) –