Tôi cần một bảng không có khóa chính (trong Django nó được tạo tự động). Vì vậy, câu hỏi của tôi là: Tôi có thể tạo mô hình không có ID/khóa chính không?Tôi có thể tạo mô hình ở Django mà không có ID tự động không?
Tôi đang sử dụng Django 1.7.
Tôi cần một bảng không có khóa chính (trong Django nó được tạo tự động). Vì vậy, câu hỏi của tôi là: Tôi có thể tạo mô hình không có ID/khóa chính không?Tôi có thể tạo mô hình ở Django mà không có ID tự động không?
Tôi đang sử dụng Django 1.7.
Bạn có thể tạo mô hình không có phím tăng tự động, nhưng bạn không thể tạo mô hình không có khóa chính.
Nếu Django thấy bạn đã thiết lập một cách rõ ràng
Field.primary_key
, nó sẽ không thêm cột id tự động.Mỗi mô hình yêu cầu chính xác một trường để có
primary_key=True
(được khai báo một cách rõ ràng hoặc tự động thêm).
Không, bạn không thể. Trích từ documentation:
Mỗi mô hình yêu cầu chính xác một trường để có primary_key = True (được khai báo rõ ràng hoặc tự động thêm).
Tôi đã tìm ra giải pháp.
Vì django cần khóa chính (hoặc là ID trường đơn hoặc tổng hợp) nên tôi đã cố gắng đặt primary_key = True trong mọi trường trong tổ hợp phím tổng hợp và thêm các trường đó trong Meta và nhóm trong unique_together
class ReportPvUv(models.Model):
report_id = models.ForeignKey(Reports, primary_key=True)
rdate = models.DateField(primary_key=True)
fdate = models.DateTimeField(primary_key=True)
ga_pv = models.BigIntegerField()
ga_uv = models.BigIntegerField()
ur_pv = models.BigIntegerField()
ur_uv = models.BigIntegerField()
da_pv = models.BigIntegerField()
da_uv = models.BigIntegerField()
class Meta:
db_table = 'report_pv_uv'
unique_together = ('report_id', 'rdate', 'fdate')
và khi tôi chạy makemigrations, không có trường ID trong cuộc di cư kịch bản của nó: D
nhờ tất cả mọi người
Ồ không !!. Bạn không thể đặt nhiều khóa chính. Bạn cần đặt nó là 'unique = True' và chỉ có một khóa chính – karthikr
Nhiều khóa chính cột được ** không ** hỗ trợ bởi Django. Có nhiều vấn đề với cách tiếp cận này. Xem https://code.djangoproject.com/wiki/MultipleColumnPrimaryKeys – Selcuk
ok, tốt. Tôi đã thay đổi nó thành duy nhất = True – HQM