Django - makemigations - Không phát hiện thay đổi


138

Tôi đã cố gắng tạo chuyển đổi trong một ứng dụng hiện có bằng cách sử dụng lệnh makemigations nhưng nó cho ra kết quả "Không phát hiện thay đổi".

Thông thường tôi tạo các ứng dụng mới bằng cách sử dụng startapplệnh nhưng không sử dụng nó cho ứng dụng này khi tôi tạo nó.

Sau khi gỡ lỗi, tôi thấy rằng nó không tạo di chuyển vì migrationsgói / thư mục bị thiếu trong một ứng dụng.

Sẽ tốt hơn nếu nó tạo thư mục nếu nó không ở đó hoặc tôi đang thiếu thứ gì đó?


13
Bạn đã thêm ứng dụng của mình vào INSTALLED_APPS chưa?
wolendranh

6
Vâng, đó là trong ứng dụng đã cài đặt, lần đầu tiên, tốt hơn nên được sử dụng makemigrations <myapp>như Alasdair đã chỉ ra.
Dilraj 22/03/2016

1
Xóa 'trừu tượng = Đúng' :)
GrvTyagi

'makemigations' không hoạt động. 'makemigations <myapp>' đã hoạt động
Aseem

Câu trả lời:


266

Để tạo di chuyển ban đầu cho một ứng dụng, hãy chạy makemigrationsvà chỉ định tên ứng dụng. Thư mục di chuyển sẽ được tạo.

./manage.py makemigrations <myapp>

Ứng dụng của bạn phải được đưa vào INSTALLED_APPSđầu tiên (bên trong settings.py).


15
Bất cứ ý tưởng tại sao họ <đôi khi> buộc chúng tôi chỉ định ứng dụng?
maazza

40
@maazza bạn cần chỉ định tên ứng dụng nếu ứng dụng không có migrationsthư mục. Điều này có thể xảy ra nếu bạn tạo ứng dụng theo cách thủ công hoặc bạn đã nâng cấp từ phiên bản cũ hơn của Django không có di chuyển.
Alasdair

13
@maazza Trên thực tế, bạn cần một gói python (có __init__.py) tên là 'di chuyển' trong ứng dụng.
Jibin

3
Âm thanh như một cái gì đó mà Django nên xử lý tự động.
duality_

1
@duality_ đây là do thiết kế - Django không cho rằng bạn muốn di chuyển cho ứng dụng của mình. Nếu nó tạo ra sự di chuyển cho tất cả các ứng dụng, nó có thể dẫn đến lỗi khi bạn chạy migrate.
Alasdair

49

Vấn đề của tôi (và vì vậy giải pháp) vẫn khác với những gì được mô tả ở trên.

Tôi đã không sử dụng models.pytệp, nhưng đã tạo một modelsthư mục và tạo my_model.pytệp ở đó, nơi tôi đặt mô hình của mình. Django không thể tìm thấy mô hình của tôi vì vậy nó đã viết rằng không có sự di chuyển nào để áp dụng.

Giải pháp của tôi là: trong my_app/models/__init__.pytập tin tôi đã thêm dòng này: from .my_model import MyModel


Điều này cũng rất vui khi là giải pháp cho tôi, nhưng tôi không hiểu tại sao lại như vậy. Có ai có cái nhìn sâu sắc về những gì có thể gây ra điều này?
Paul trong 't Hout

Django có một đường dẫn mặc định về nơi tìm kiếm các mô hình của bạn. Nếu cấu trúc dự án khác nhau và các mô hình không ở nơi thông thường, chúng cần được nhập vào đó.
Karina Klinkevičiūtė

@ KarinaKlinkevičiūtė nếu tôi cần loại bỏ các mô hình như vậy thì sao?
Daniil Mashkin

@DaniilMashkin Tôi tưởng tượng bạn cũng sẽ cần phải xóa hàng nhập khẩu. Đây là một trong những cách cấu trúc dự án của bạn (không phải là duy nhất) và bạn phải giải quyết các nhiệm vụ bổ sung đi kèm nếu bạn chọn nó :)
Karina Klinkevičiūtė

1
Tôi đã sử dụng kiến ​​trúc "cổ điển" cho các mô hình, sau đó tôi di chuyển sang kiến ​​trúc "thư mục mô hình" và mọi di chuyển vẫn được phát hiện trên các mô hình hiện có của tôi. Tuy nhiên, bây giờ, khi tạo một mô hình mới , tôi có vấn đề này. Giải pháp của bạn hoạt động tốt, nhưng nó cho phép loại cơ sở mã hóa của tôi không nhất quán vì đôi khi có một lần nhập, đôi khi không. Có lẽ có một giải pháp tốt hơn. Tôi đoán Django nên đề xuất một cài đặt với danh sách các thư mục cần tìm khi cố gắng tìm các mô hình mới.
David D.

43

Có nhiều lý do có thể khiến django không phát hiện ra những gì cần di chuyển trong makemigrationslệnh.

  1. thư mục di chuyển Bạn cần một gói di chuyển trong ứng dụng của bạn.
  2. INSTALLED_APPS Bạn cần ứng dụng của mình được chỉ định trong INSTALLED_APPS.dict
  3. Độ dài bắt đầu bằng cách chạy makemigrations -v 3cho độ dài. Điều này có thể làm sáng tỏ vấn đề.
  4. Đường dẫn đầy đủ Trong INSTALLED_APPSkhuyến nghị nên chỉ định đường dẫn cấu hình ứng dụng mô-đun đầy đủ 'application.apps.MyAppConfig'
  5. - cài đặt bạn có thể muốn đảm bảo tệp cài đặt chính xác được đặt:manage.py makemigrations --settings mysite.settings
  6. chỉ định rõ ràng tên ứng dụng đặt tên ứng dụng vào manage.py makemigrations myapp- thu hẹp việc di chuyển cho ứng dụng một mình và giúp bạn cách ly vấn đề.
  7. kiểm tra meta mô hình bạn có quyền app_labeltrong meta mô hình của bạn

  8. Gỡ lỗi django gỡ lỗi kịch bản cốt lõi django. lệnh makemigations là khá nhiều thẳng về phía trước. Đây là cách để làm điều đó trong pycharm . thay đổi định nghĩa tập lệnh của bạn cho phù hợp (ví dụ makemigrations --traceback myapp:)

Nhiều cơ sở dữ liệu:

  • Bộ định tuyến Db khi làm việc với bộ định tuyến django, lớp bộ định tuyến (lớp bộ định tuyến tùy chỉnh của bạn) cần triển khai allow_syncdbphương thức.

makemigations luôn tạo chuyển đổi cho các thay đổi mô hình, nhưng nếu allow_migrate () trả về Sai,


1
Bao gồm nhiều kịch bản liên quan đến vấn đề, nên được trả lời chấp nhận.
Krishh

Một khả năng khác: Tên sai đang được nhập, tức là nhập một trường từ biểu mẫu thay vì trường hoặc nhập mô hình từ biểu mẫu thay vì mô hình. Một ví dụ: from recurrence.forms import RecurrenceFieldnhưng nó nên có from recurrence.fields import RecurrenceField.
hlongmore

Thêm một lý do nữa. Đảm bảo rằng mô hình được sử dụng trong một tuyến đường cho trang web (thông qua quản trị viên hoặc cách khác). " makemigrationsKịch bản tìm kiếm các mô hình được kết nối từ urls.py". Tìm thấy ở đây stackoverflow.com/questions/43093651/ Mạnh
Kyle

ví dụ cmd:python manage.py makemigrations -v 3 <app_name>
Charlie

Khi tôi thêm một bảng, và sau đó thêm một tham chiếu Khóa ngoài, bảng mới này cùng một lúc. Nó phải được chia thành 2 bước: bước trước: thêm INSTALLED_APPS vào cài đặt. 1) tạo bảng mới: python Manage.py makemigations <app_name>; 2) thêm Khóa ngoại: python Manage.py makemigations
Charlie

26

Tôi đã đọc nhiều câu trả lời cho câu hỏi này thường chỉ đơn giản là chạy makemigrationstheo một số cách khác. Nhưng với tôi, vấn đề nằm ở Metalớp con của các mô hình.

Tôi có một cấu hình ứng dụng cho biết label = <app name>(trong apps.pytệp, bên cạnh models.py, views.pyv.v.). Nếu trong bất kỳ trường hợp nào, lớp meta của bạn không có cùng nhãn với nhãn ứng dụng (ví dụ vì bạn đang chia một ứng dụng quá lớn thành nhiều ứng dụng), thì không có thay đổi nào được phát hiện (và không có thông báo lỗi hữu ích nào). Vì vậy, trong lớp mô hình của tôi, bây giờ tôi có:

class ModelClassName(models.Model):

    class Meta:
        app_label = '<app name>' # <-- this label was wrong before.

    field_name = models.FloatField()
    ...

Chạy Django 1.10 tại đây.


13

Đó là một nhận xét nhưng có lẽ nên là một câu trả lời.

Hãy chắc chắn rằng tên ứng dụng của bạn nằm trong settings.txt INSTALLED_APPSnếu không, bất kể bạn làm gì, nó sẽ không chạy di chuyển.

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',

    'blog',
]

Sau đó chạy:

./manage.py makemigrations blog

nhưng nó tạo ra tên bảng là 'appname_modelname', khi chúng tôi chạy lệnh 'Manage.py di chuyển'
Daniyal Javaid

Xem lựa chọn meta mô hình để thay đổi tên bảng
stephen

11

Tôi có một vấn đề khác không được mô tả ở đây, điều đó đã khiến tôi phát điên.

class MyModel(models.Model):
    name = models.CharField(max_length=64, null=True)  # works
    language_code = models.CharField(max_length=2, default='en')  # works
    is_dumb = models.BooleanField(default=False),  # doesn't work

Tôi đã có một dấu ',' trong một dòng có lẽ từ bản sao và dán. Dòng với is_dumb không tạo ra một di chuyển mô hình với './manage.py makemigations' nhưng cũng không gây ra lỗi. Sau khi loại bỏ ',' nó hoạt động như mong đợi.

Vì vậy, hãy cẩn thận khi bạn sao chép và dán :-)


Dấu phẩy có thể gây ra lỗi ở nơi khác; dấu phẩy làm cho tuyên bố một tuple, vì vậy is_dumbbằng (models.BooleanField(default=False), )makemigrationskhông biết làm thế nào để chuyển đổi thành một cột cơ sở dữ liệu.
hlongmore

8

Đôi khi có khi ./manage.py makemigrationsvượt trội hơn ./manage.py makemigrations <myapp>bởi vì nó có thể xử lý một số xung đột nhất định giữa các ứng dụng.

Những dịp đó diễn ra âm thầm và phải mất vài giờ swearingđể hiểu ý nghĩa thực sự của No changes detectedthông điệp đáng sợ .

Do đó, việc sử dụng lệnh sau đây là một lựa chọn tốt hơn nhiều:

./manage.py makemigrations <myapp1> <myapp2> ... <myappN>


7

Tôi đã sao chép một bảng từ bên ngoài django và lớp Meta được mặc định là "Managed = false". Ví dụ:

class Rssemailsubscription(models.Model):
    id = models.CharField(primary_key=True, max_length=36)
    ...
    area = models.FloatField('Area (Sq. KM)', null=True)

    class Meta:
        managed = False
        db_table = 'RSSEmailSubscription'

Bằng cách thay đổi được chuyển thành True, makemig bắt đầu chọn các thay đổi.


4
  1. Đảm bảo ứng dụng của bạn được đề cập trong install_apps trong settings.txt
  2. Hãy chắc chắn rằng lớp mô hình của bạn mở rộng mô hình.Model

2

Tôi đã giải quyết vấn đề đó bằng cách làm điều này:

  1. Xóa tệp "db.sqlite3". Vấn đề ở đây là cơ sở dữ liệu hiện tại của bạn sẽ bị xóa, vì vậy bạn sẽ phải làm lại nó.
  2. Trong thư mục di chuyển của ứng dụng đã chỉnh sửa của bạn, xóa tệp cập nhật mới nhất. Hãy nhớ rằng tệp được tạo đầu tiên là: "0001_initial.py". Ví dụ: Tôi đã tạo một lớp mới và đăng ký nó bằng thủ tục "makemigations" và "di chuyển", bây giờ một tệp mới có tên "0002_auto_etc.py" đã được tạo; xóa nó đi
  3. Chuyển đến thư mục " pycache " (bên trong thư mục di chuyển) và xóa tệp "0002_auto_etc.pyc".
  4. Cuối cùng, đi đến bảng điều khiển và sử dụng "python Manage.py makemigations" và "python Manage.py di chuyển".

2

Tôi quên đặt các đối số chính xác:

class LineInOffice(models.Model):   # here
    addressOfOffice = models.CharField("Корхоная жош",max_length= 200)   #and here
    ...

trong mô hình và sau đó nó bắt đầu giảm phiền phức

Không có thay đổi nào được phát hiện trong ứng dụng 'myApp'


2

Một lý do khác có thể là nếu bạn có một số mô hình được xác định trong một tệp khác (không phải trong một gói) và không tham chiếu đến bất kỳ nơi nào khác.

Đối với tôi, chỉ cần thêm from .graph_model import *vào admin.py( graph_model.pytệp mới ở đâu) đã khắc phục sự cố.


2

Vấn đề của tôi đơn giản hơn nhiều so với các câu trả lời ở trên và có lẽ là một lý do phổ biến hơn nhiều miễn là dự án của bạn đã được thiết lập và hoạt động. Trong một trong những ứng dụng của tôi đã hoạt động trong một thời gian dài, việc di chuyển có vẻ rất khó khăn, vì vậy, vội vàng, tôi đã làm như sau:

rm -r */migrations/*
rm db.sqlite3
python3 manage.py makemigrations
No changes detected

Cái gì vậy ??

Tôi cũng đã xóa nhầm tất cả các __init__.pytệp :( - Mọi thứ đã hoạt động trở lại sau khi tôi vào và:

touch ads1/migrations/__init__.py

Đối với mỗi ứng dụng của tôi sau đó makemigrationslàm việc lại.

Hóa ra tôi đã tự tạo một ứng dụng mới bằng cách sao chép một ứng dụng khác và quên đặt nó __init__.pyvào migrationsthư mục và điều đó đã khẳng định với tôi rằng mọi thứ đều rất khó khăn - dẫn đến việc tôi làm nó tồi tệ hơn rm -rnhư mô tả ở trên.

Hy vọng điều này sẽ giúp ai đó không chửi thề về lỗi "Không phát hiện thay đổi" trong vài giờ.


1

Giải pháp là bạn phải đưa ứng dụng của mình vào INSTALLED_APPS.

Tôi đã bỏ lỡ nó và tôi tìm thấy vấn đề tương tự.

sau khi chỉ định di chuyển tên ứng dụng của tôi đã thành công

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'boards',
]

xin lưu ý tôi đã đề cập đến bảng cuối cùng, đó là tên ứng dụng của tôi.


1

INSTALLED_APPS = [

'blog.apps.BlogConfig',
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',

]

đảm bảo 'blog.apps.BlogConfig', (điều này được bao gồm trong cài đặt của bạn để thực hiện di chuyển ứng dụng của bạn)

sau đó chạy blog python3 Manage.py makemigations hoặc tên ứng dụng của bạn


1

Một vấn đề rất ngớ ngẩn bạn cũng có thể có là xác định hai class Metatrong mô hình của bạn. Trong trường hợp đó, mọi thay đổi đối với lần đầu tiên sẽ không được áp dụng khi chạy makemigrations.

class Product(models.Model):
    somefield = models.CharField(max_length=255)
    someotherfield = models.CharField(max_length=255)

    class Meta:
        indexes = [models.Index(fields=["somefield"], name="somefield_idx")]

    def somefunc(self):
        pass

    # Many lines...

    class Meta:
        indexes = [models.Index(fields=["someotherfield"], name="someotherfield_idx")]

1

Tôi biết đây là một câu hỏi cũ nhưng tôi đã chiến đấu với cùng một vấn đề này cả ngày và giải pháp của tôi là một câu hỏi đơn giản.

Tôi đã có cấu trúc thư mục của mình một cái gì đó dọc theo dòng ...

apps/
   app/
      __init__.py
      app_sub1/
           __init__.py
           models.py
      app_sub2/
           __init__.py
           models.py
      app_sub3/
           __init__.py
           models.py
   app2/
      __init__.py
      app2_sub1/
           __init__.py
           models.py
      app2_sub2/
           __init__.py
           models.py
      app2_sub3/
           __init__.py
           models.py
    main_app/
      __init__.py
      models.py

Và vì tất cả các mô hình khác cho đến khi tôi gặp sự cố đã được nhập ở một nơi khác đã kết thúc nhập từ main_appđó đã được đăng ký INSTALLED_APPS, tôi đã may mắn rằng tất cả chúng đều hoạt động.

Nhưng kể từ khi tôi chỉ thêm vào mỗi appđến INSTALLED_APPSvà không phải là app_sub*khi tôi cuối cùng thêm một mô hình tập tin mới mà không được nhập khẩu bất cứ nơi nào khác, Django hoàn toàn phớt lờ nó.

Cách khắc phục của tôi là thêm một models.pytệp vào thư mục cơ sở của mỗi appcái như thế này ...

apps/
   app/
      __init__.py
      models.py <<<<<<<<<<--------------------------
      app_sub1/
           __init__.py
           models.py
      app_sub2/
           __init__.py
           models.py
      app_sub3/
           __init__.py
           models.py
   app2/
      __init__.py
      models.py <<<<<<<<<<--------------------------
      app2_sub1/
           __init__.py
           models.py
      app2_sub2/
           __init__.py
           models.py
      app2_sub3/
           __init__.py
           models.py
    main_app/
      __init__.py
      models.py

và sau đó thêm from apps.app.app_sub1 import *và cứ thế vào từng tệp appcấp models.py.

Bleh ... điều này khiến tôi mất nhiều thời gian để tìm ra và tôi không thể tìm thấy giải pháp ở bất cứ đâu ... Tôi thậm chí đã đi đến trang 2 của kết quả google.

Hy vọng điều này sẽ giúp được ai đó!


1

Tôi đã gặp vấn đề tương tự với django 3.0, theo phần di chuyển trong tài liệu chính thức , chạy nó là đủ để cập nhật cấu trúc bảng của tôi:

python manage.py makemigrations
python manage.py migrate

Nhưng kết quả đầu ra luôn giống nhau: 'không có thay đổi nào được phát hiện' về các mô hình của tôi sau khi tôi thực hiện tập lệnh 'makemigations'. Tôi đã gặp lỗi cú pháp trên mô hình mô hình tại mô hình tôi muốn cập nhật trên db:

field_model : models.CharField(max_length=255, ...)

thay vì:

field_model = models.CharField(max_length=255, ...)

Giải quyết sai lầm ngu ngốc này, với những lệnh đó, việc di chuyển đã được thực hiện mà không gặp vấn đề gì. Có lẽ điều này giúp một ai đó.


0

Bạn nên thêm polls.apps.PollsConfigvào INSTALLED_APPStrongsetting.py


0

Trong trường hợp của tôi, tôi quên chèn các đối số lớp

Sai lầm:

class AccountInformation():

Chính xác

class AccountInformation(models.Model):

0

Trong trường hợp của tôi, lần đầu tiên tôi đã thêm một trường vào mô hình và Django nói rằng không có thay đổi.

Hơn tôi quyết định thay đổi "tên bảng" của mô hình, các mô hình làm việc. Hơn tôi đã thay đổi tên bảng trở lại mặc định và trường mới cũng ở đó.

Có một "lỗi" trong hệ thống di chuyển django, đôi khi nó không nhìn thấy trường mới. Có thể liên quan đến trường ngày.


0

Lý do có thể có thể là xóa tệp db và thư mục di chuyển hiện có mà bạn có thể sử dụng python manage.py makemigrations <app_name>nên nó sẽ hoạt động. Tôi đã từng phải đối mặt với một vấn đề tương tự.


0

Thêm một trường hợp và giải pháp cạnh:

Tôi đã thêm một trường boolean, đồng thời thêm một @property tham chiếu nó, với cùng tên (doh). Nhận xét thuộc tính và di chuyển nhìn thấy và thêm trường mới. Đổi tên tài sản và tất cả là tốt.


0

Nếu bạn có managed = TrueMeta mô hình yout, bạn cần xóa nó và thực hiện di chuyển. Sau đó chạy lại di chuyển, nó sẽ phát hiện các bản cập nhật mới.


0

Khi thêm các mô hình mới vào ứng dụng django api và chạy python manage.py makemigrationscông cụ không phát hiện ra bất kỳ mô hình mới nào.

Điều kỳ lạ là các mô hình cũ đã được chọn makemigrations, nhưng điều này là do chúng được tham chiếu trong urlpatternschuỗi và công cụ bằng cách nào đó đã phát hiện ra chúng. Vì vậy, hãy theo dõi hành vi đó.

Vấn đề là do cấu trúc thư mục tương ứng với gói mô hình có các gói con và tất cả các __init__.pytệp đều trống. Họ phải nhập rõ ràng tất cả các lớp cần thiết trong mỗi thư mục con và trong các mô hình __init__.py cho Django để chọn chúng bằng makemigrationscông cụ.

models
  ├── __init__.py          <--- empty
  ├── patient
     ├── __init__.py      <--- empty
     ├── breed.py
     └── ...
  ├── timeline
     ├── __init__.py      <-- empty
     ├── event.py
     └── ...

0

Hãy thử đăng ký mô hình của bạn trong admin.py, đây là một ví dụ: - admin.site.register (YourModelHere)

Bạn có thể thực hiện các thao tác sau: - 1. admin.site.register (YourModelHere) # Trong admin.py 2. Tải lại trang và thử lại 3. Nhấn CTRL-S và lưu 4. Có thể có lỗi, đặc biệt kiểm tra các mô hình .py và admin.py 5. Hoặc, cuối cùng, tất cả chỉ cần khởi động lại máy chủ


0

Điều này hy vọng có thể giúp đỡ người khác, vì cuối cùng tôi đã dành hàng giờ cố gắng để theo đuổi điều này.

Nếu bạn có một hàm trong mô hình của mình cùng tên, điều này sẽ xóa giá trị. Khá rõ ràng trong nhận thức muộn, nhưng dù sao.

Vì vậy, nếu bạn có một cái gì đó như thế này:

class Foobar(models.Model):
    [...]
    something = models.BooleanField(default=False)

    [...]
    def something(self):
        return [some logic]

Trong trường hợp đó, hàm sẽ ghi đè cài đặt ở trên, làm cho nó "vô hình" thành makemigrations.


0

Điều tốt nhất bạn có thể làm là, Xóa cơ sở dữ liệu hiện có. Trong trường hợp của tôi, tôi đang sử dụng cơ sở dữ liệu SQL phpyAdmin, vì vậy tôi xóa thủ công cơ sở dữ liệu đã tạo.

Sau khi xóa: Tôi tạo cơ sở dữ liệu trong PhpMyAdmin và không thêm bất kỳ bảng nào.

Chạy lại các lệnh sau:

python manage.py makemigrations

python manage.py migrate

Sau các lệnh này : Bạn có thể thấy django đã tự động tạo các bảng cần thiết khác trong Cơ sở dữ liệu (Khoảng 10 bảng).

python manage.py makemigrations <app_name>

python manage.py migrate

Và cuối cùng: Sau các lệnh trên, tất cả các mô hình (bảng) bạn đã tạo được nhập trực tiếp vào cơ sở dữ liệu.

Hy vọng điều này sẽ giúp.


0

Vấn đề của tôi với lỗi này, là tôi đã bao gồm:

class Meta:
   abstract = True

Mô hình bên trong mà tôi muốn tạo di chuyển cho.


0

Tôi đã có một vấn đề khác trong khi tạo một ứng dụng mới được gọi là deals. Tôi muốn tách các mô hình bên trong ứng dụng đó để tôi có 2 tệp mô hình có tên deals.pydealers.py. Khi chạy python manage.py makemigrationstôi có : No changes detected.

Tôi đã đi trước và bên trong __init__.pycuộc sống trên cùng một thư mục nơi các tệp mô hình của tôi sống (giao dịch và đại lý) tôi đã làm

from .deals import *
from .dealers import *

Và sau đó makemigrationslệnh đã làm việc.

Hóa ra nếu bạn không nhập các mô hình ở bất cứ đâu HOẶC tên tệp mô hình của bạn không models.pythì các mô hình sẽ không được phát hiện.

Một vấn đề khác xảy ra với tôi là cách tôi viết ứng dụng settings.py:

Tôi đã có:

apps.deals

Nó nên được bao gồm thư mục dự án gốc:

cars.apps.deals
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.