Django Ошибка производства: ошибка программирования в / admin / posts / post / add / - PullRequest
0 голосов
/ 31 января 2020

django производственная ошибка (Heroku):

column "author_id" of relation "posts_post" does not exist
LINE 1: INSERT INTO "posts_post" ("author_id", "title", "content", "...

все прекрасно, когда я запускаю его в localhost, но где, когда я развернул его в herouko и попытался добавить сообщение, с которым сталкиваюсь проблема, я перепробовал все возможные способы удаления базы данных, примененные миграции применяли поддельные миграции, но все бесполезно

вот полный возврат:

Traceback (most recent call last):
  File "/app/.heroku/python/lib/python3.7/site-packages/django/db/backends/utils.py", line 86, in _execute
    return self.cursor.execute(sql, params)

The above exception (column "author_id" of relation "posts_post" does not exist
LINE 1: INSERT INTO "posts_post" ("author_id", "title", "content", "...
                                  ^
) was the direct cause of the following exception:
  File "/app/.heroku/python/lib/python3.7/site-packages/django/core/handlers/exception.py", line 34, in inner
    response = get_response(request)
  File "/app/.heroku/python/lib/python3.7/site-packages/django/core/handlers/base.py", line 115, in _get_response
    response = self.process_exception_by_middleware(e, request)
  File "/app/.heroku/python/lib/python3.7/site-packages/django/core/handlers/base.py", line 113, in _get_response
    response = wrapped_callback(request, *callback_args, **callback_kwargs)
  File "/app/.heroku/python/lib/python3.7/site-packages/django/contrib/admin/options.py", line 607, in wrapper
    return self.admin_site.admin_view(view)(*args, **kwargs)
  File "/app/.heroku/python/lib/python3.7/site-packages/django/utils/decorators.py", line 130, in _wrapped_view
    response = view_func(request, *args, **kwargs)
  File "/app/.heroku/python/lib/python3.7/site-packages/django/views/decorators/cache.py", line 44, in _wrapped_view_func
    response = view_func(request, *args, **kwargs)
  File "/app/.heroku/python/lib/python3.7/site-packages/django/contrib/admin/sites.py", line 231, in inner
    return view(request, *args, **kwargs)
  File "/app/.heroku/python/lib/python3.7/site-packages/django/contrib/admin/options.py", line 1638, in add_view
    return self.changeform_view(request, None, form_url, extra_context)
  File "/app/.heroku/python/lib/python3.7/site-packages/django/utils/decorators.py", line 43, in _wrapper
    return bound_method(*args, **kwargs)
  File "/app/.heroku/python/lib/python3.7/site-packages/django/utils/decorators.py", line 130, in _wrapped_view
    response = view_func(request, *args, **kwargs)
  File "/app/.heroku/python/lib/python3.7/site-packages/django/contrib/admin/options.py", line 1522, in changeform_view
    return self._changeform_view(request, object_id, form_url, extra_context)
  File "/app/.heroku/python/lib/python3.7/site-packages/django/contrib/admin/options.py", line 1565, in _changeform_view
    self.save_model(request, new_object, form, not add)
  File "/app/.heroku/python/lib/python3.7/site-packages/django/contrib/admin/options.py", line 1081, in save_model
    obj.save()
  File "/app/.heroku/python/lib/python3.7/site-packages/django/db/models/base.py", line 746, in save
    force_update=force_update, update_fields=update_fields)
  File "/app/.heroku/python/lib/python3.7/site-packages/django/db/models/base.py", line 784, in save_base
    force_update, using, update_fields,
  File "/app/.heroku/python/lib/python3.7/site-packages/django/db/models/base.py", line 886, in _save_table
    results = self._do_insert(cls._base_manager, using, fields, returning_fields, raw)
  File "/app/.heroku/python/lib/python3.7/site-packages/django/db/models/base.py", line 925, in _do_insert
    using=using, raw=raw,
  File "/app/.heroku/python/lib/python3.7/site-packages/django/db/models/manager.py", line 82, in manager_method
    return getattr(self.get_queryset(), name)(*args, **kwargs)
  File "/app/.heroku/python/lib/python3.7/site-packages/django/db/models/query.py", line 1204, in _insert
    return query.get_compiler(using=using).execute_sql(returning_fields)
  File "/app/.heroku/python/lib/python3.7/site-packages/django/db/models/sql/compiler.py", line 1377, in execute_sql
    cursor.execute(sql, params)
  File "/app/.heroku/python/lib/python3.7/site-packages/django/db/backends/utils.py", line 100, in execute
    return super().execute(sql, params)
  File "/app/.heroku/python/lib/python3.7/site-packages/django/db/backends/utils.py", line 68, in execute
    return self._execute_with_wrappers(sql, params, many=False, executor=self._execute)
  File "/app/.heroku/python/lib/python3.7/site-packages/django/db/backends/utils.py", line 77, in _execute_with_wrappers
    return executor(sql, params, many, context)
  File "/app/.heroku/python/lib/python3.7/site-packages/django/db/backends/utils.py", line 86, in _execute
    return self.cursor.execute(sql, params)
  File "/app/.heroku/python/lib/python3.7/site-packages/django/db/utils.py", line 90, in __exit__
    raise dj_exc_value.with_traceback(traceback) from exc_value
  File "/app/.heroku/python/lib/python3.7/site-packages/django/db/backends/utils.py", line 86, in _execute
    return self.cursor.execute(sql, params)

Exception Type: ProgrammingError at /admin/posts/post/add/
Exception Value: column "author_id" of relation "posts_post" does not exist
LINE 1: INSERT INTO "posts_post" ("author_id", "title", "content", 

"...

Я пытался сбросить таблицы, но все еще не мог выяснить проблему

models.py

from django.db import models
import uuid # new

from django.db import models # new
from django.shortcuts import reverse # new
from django.contrib.auth.models import AbstractUser
from django.conf import settings
from django.contrib.auth.models import User
from django.core.validators import MaxValueValidator,MinValueValidator
# Create your models here.
from django.contrib.auth import get_user_model

User = get_user_model()


class Post(models.Model):
    author=models.ForeignKey(User,on_delete=models.CASCADE,related_name="post")
    title=models.CharField(max_length=128,null=True,blank=True)
    content=models.TextField()
    review=models.CharField(max_length=250,null=True,blank=True)
    url=models.URLField(null=True,blank=True)
    voters = models.ManyToManyField(settings.AUTH_USER_MODEL,blank=True,related_name="post_voters")

    def __str__(self):
        return f'{self.content}'
    def get_absolute_url(self):
        return reverse('post:post_detail' , kwargs={'post_id':post.id})
    def no_of_rating(self):
        ratings=Rating.objects.filter(Post=self)
        return len(ratings)
    def avg_rating(self):
        sum = 0
        ratings = Rating.objects.filter(Post=self)
        for rating in ratings:
            sum += rating.stars

        if len(ratings) > 0:
            return sum / len(ratings)
        else:
            return 0

class Rating(models.Model):
    Post=models.ForeignKey(Post,on_delete=models.CASCADE)
    user=models.ForeignKey(User,on_delete=models.CASCADE)
    stars=models.IntegerField(validators=[MinValueValidator(1),MaxValueValidator(5)])
    class Meta:
        unique_together =(( 'user' ,'Post'),)
        index_together =(( 'user' ,'Post'),)

class comments(models.Model):
    # created_at=models.DateTimeField(auto_now_add=True)
    content=models.CharField(max_length=128,default=True)
    post=models.ForeignKey(Post,on_delete=models.CASCADE,related_name="comments",default=True)
    author=models.ForeignKey(settings.AUTH_USER_MODEL,blank=True,default=True,on_delete=models.CASCADE)
    def __str__(self):
        return self.author.username
...