Попытка развернуть свой проект на сервере, и я застрял в миграции becouse есть некоторые ошибки:TypeError: Int() аргумент должен быть строкой или числом, не «Модель Instance» - 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'
а вот мой models.py файл:
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
Просто пытаюсь сделать некоторые свежие приложения на Heroku, делая новые миграции и удаление olders, но она по-прежнему не работает. Кто-нибудь может знать, что с ним не так? Спасибо за ответ.
Спасибо, его сработало :) – Damian
@Damian Вы можете подумать о принятии, если он решит вашу проблему :) –