Я попытался настроить простой файл models.py в рамках этого руководства, которое я изучал в Интернете. Когда я попробовал команду syncdb, я получил следующие ошибки:
File "manage.py", line 10, in <module>
execute_from_command_line(sys.argv)
File "/Library/Python/2.7/site-packages/Django-1.4-py2.7.egg/django/core/management/__init__.py", line 443, in execute_from_command_line
utility.execute()
File "/Library/Python/2.7/site-packages/Django-1.4-py2.7.egg/django/core/management/__init__.py", line 382, in execute
self.fetch_command(subcommand).run_from_argv(self.argv)
File "/Library/Python/2.7/site-packages/Django-1.4-py2.7.egg/django/core/management/base.py", line 196, in run_from_argv
self.execute(*args, **options.__dict__)
File "/Library/Python/2.7/site-packages/Django-1.4-py2.7.egg/django/core/management/base.py", line 231, in execute
self.validate()
File "/Library/Python/2.7/site-packages/Django-1.4-py2.7.egg/django/core/management/base.py", line 266, in validate
num_errors = get_validation_errors(s, app)
File "/Library/Python/2.7/site-packages/Django-1.4-py2.7.egg/django/core/management/validation.py", line 30, in get_validation_errors
for (app_name, error) in get_app_errors().items():
File "/Library/Python/2.7/site-packages/Django-1.4-py2.7.egg/django/db/models/loading.py", line 158, in get_app_errors
self._populate()
File "/Library/Python/2.7/site-packages/Django-1.4-py2.7.egg/django/db/models/loading.py", line 64, in _populate
self.load_app(app_name, True)
File "/Library/Python/2.7/site-packages/Django-1.4-py2.7.egg/django/db/models/loading.py", line 88, in load_app
models = import_module('.models', app_name)
File "/Library/Python/2.7/site-packages/Django-1.4-py2.7.egg/django/utils/importlib.py", line 35, in import_module
__import__(name)
File "/Users/Mike/Desktop/Main/Django-Development/BBN/Knights/models.py", line 3, in <module>
class Users(models.Model):
File "/Library/Python/2.7/site-packages/Django-1.4-py2.7.egg/django/db/models/base.py", line 99, in __new__
new_class.add_to_class(obj_name, obj)
File "/Library/Python/2.7/site-packages/Django-1.4-py2.7.egg/django/db/models/base.py", line 219, in add_to_class
value.contribute_to_class(cls, name)
TypeError: Error when calling the metaclass bases
unbound method contribute_to_class() must be called with EmailField instance as first argument (got ModelBase instance instead)
Это мой файл models.py:
from django.db import models
class Users(models.Model):
pen_name = models.CharField(max_length=30)
email = models.EmailField
class Works(models.Model):
user = models.ForeignKey(Users)
date_published = models.DateField()
class Reviews(models.Model):
work = models.ForeignKey(Works)
date_published = models.DateField()
class Works_Subscriptions(models.Model):
user = models.ForeignKey(Users)
to_work = models.ForeignKey(Works)
class User_Subscriptions(models.Model):
user = models.ForeignKey(Users)
to_user = models.ForeignKey(Users)
class Books(models.Model):
title = models.CharField(max_length=50)
author = models.CharField(max_length=50)
Если это поможет, я использую sqlite3, и раньше он работал, когда у меня ничего не было в файле models.py (, поэтому он просто синхронизировал базу данных с обычными таблицами django )
-. 121 ---1434406-Итак, я пытаюсь заставить свое приложение отправлять ответы JSON, используя динамическое сжатие и gzip. К сожалению, это не работает. Все статическое сжатие на сервере работает нормально, но не динамическое.
Я установил это, добавив:
<add mimeType="application/json" enabled="true" />
<add mimeType="application/json; charset=utf-8" enabled="true" />
В раздел <dynamicTypes>
файла <httpCompression>
в файле applicationHost.config. Я использую Charles для проверки HTTP-запросов и могу убедиться, что отправляю запросы с набором заголовков Accept-Encoding: gzip, deflate
. Я пробовал как Accept: */*
, так и Accept: application/json
. Когда это не сработало, я включил ведение журнала трассировки «Неудачный запрос», чтобы найти код ошибки для DYNAMIC_COMPRESSION_NOT_SUCCESS
, который был NO_MATCHING_CONTENT_TYPE
.
Я пытался исследовать форумы и Google, но все, что я вижу, это то, что люди говорят, что использование mimeType с указанной кодировкой решает для них проблему,но в моем случае это все еще не работает, и я могу убедиться, что ответ возвращается с заголовком, говорящимContent-Type: application/json; charset=utf-8
Конечные точки, которые обслуживают ответы JSON, — это стандартные веб-службы.NET ASMX, аннотированные [ScriptService()]
в классе и [ScriptMethod(UseHttpGet = true, ResponseFormat = ResponseFormat.Json)]
в методе. Они возвращают JSON в порядке, но я не могу заставить динамическое сжатие работать на всю жизнь.
Так как это обычные веб-методы, я также добавил:
<add mimeType="text/xml" enabled="true" />
<add mimeType="text/xml; charset=utf-8" enabled="true" />
Чтобы попытаться сжать XML-ответы. Что расстраивает, так это то, что это сжатие работает, а отправка JSON из того же метода - нет. В этот момент я как бы в растерянности.