Vì một số lý do hôm nay tôi không thể đổ cơ sở dữ liệu của mình bằng cách sử dụng python manage.py dumpdata
hoặc từ liên kết có thể tải xuống tệp mysql.Khắc phục sự cố "Lỗi: Không thể tuần tự hóa cơ sở dữ liệu:" khi thực hiện dumpdata
Tôi đã cố sử dụng python manage.py dumpdata --traceback
và đây là thông tin tôi có.
Traceback (most recent call last):
File "manage.py", line 11, in <module>
execute_manager(settings)
File "/usr/local/lib/python2.7/site-packages/django/core/management/__init__.py", line 438, in execute_manager
utility.execute()
File "/usr/local/lib/python2.7/site-packages/django/core/management/__init__.py", line 379, in execute
self.fetch_command(subcommand).run_from_argv(self.argv)
File "/usr/local/lib/python2.7/site-packages/django/core/management/base.py", line 191, in run_from_argv
self.execute(*args, **options.__dict__)
File "/usr/local/lib/python2.7/site-packages/django/core/management/base.py", line 220, in execute
output = self.handle(*args, **options)
File "/usr/local/lib/python2.7/site-packages/django/core/management/commands/dumpdata.py", line 114, in handle
use_natural_keys=use_natural_keys)
File "/usr/local/lib/python2.7/site-packages/django/core/serializers/__init__.py", line 91, in serialize
s.serialize(queryset, **options)
File "/usr/local/lib/python2.7/site-packages/django/core/serializers/base.py", line 48, in serialize
self.handle_fk_field(obj, field)
File "/usr/local/lib/python2.7/site-packages/django/core/serializers/python.py", line 48, in handle_fk_field
related = getattr(obj, field.name)
File "/usr/local/lib/python2.7/site-packages/django/db/models/fields/related.py", line 301, in __get__
raise self.field.rel.to.DoesNotExist
django.contrib.auth.models.DoesNotExist
Nó nói django.contrib.auth.models.DoesNotExist
. Tôi tự hỏi nếu nó có cái gì đó để làm với một phím nước ngoài hoặc một cái gì đó.
models.py
class Client(models.Model):
name = models.CharField(max_length = 40)
telephone = models.CharField(max_length = 20)
website = models.URLField(verify_exists = False)
fax = models.CharField(max_length = 20)
email = models.EmailField()
is_active = models.BooleanField()
user = models.ForeignKey(User)
datetime = models.DateTimeField(default=datetime.now)
note = models.TextField()
def __unicode__(self):
return self.name
Từ models.py của tôi, người dùng lĩnh vực, datetime và lưu ý đã được thêm vào thời gian gần đây. Bây giờ, nếu cho một khách hàng, bất kỳ trường nào trong số này không có giá trị tức là trống, tôi sẽ gặp lỗi Unable to serialize database
.
Khi tôi đã tra cứu người dùng, thời gian rảnh và ghi chú trong mysql. Bảng cho khách hàng hiển thị user_id, datetime và note để có giá trị Null (đó là những gì tôi muốn). Tại sao nó không cho phép các giá trị Null?
+-----------+--------------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +-----------+--------------+------+-----+---------+----------------+ | id | int(11) | NO | PRI | NULL | auto_increment | | name | varchar(40) | NO | | NULL | | | telephone | varchar(20) | NO | | NULL | | | website | varchar(200) | NO | | NULL | | | fax | varchar(20) | NO | | NULL | | | email | varchar(75) | NO | | NULL | | | is_active | tinyint(1) | NO | | NULL | | | user_id | int(11) | YES | MUL | NULL | | | datetime | datetime | YES | | NULL | | | note | longtext | YES | | NULL | | +-----------+--------------+------+-----+---------+----------------+
vấn đề then chốt Ngoại âm thanh như một đặt cược tốt. Bất kỳ mô hình nào của bạn có các trường ForeignKey trỏ đến các mô hình trong 'django.contrib.auth.models'? – tcarobruce
Tôi thứ hai @tcarobruce. Nghe có vẻ như một vấn đề quan trọng hoặc khóa ngoại. Tôi đã có những tình huống tương tự xảy ra vì thiếu các khóa hoặc các ràng buộc mà không được Nam hoặc bằng tay sửa đổi đúng cách. – Brandon
'self.handle_fk_field (obj, field)' là một chút giveaway –