2012-12-19 40 views
5

Tôi đang sử dụng Django để tạo khoảng không quảng cáo một phần nơi tôi làm việc. Dưới đây là một đoạn của các mô hình tôi có:Mô hình Django - Trường số lượng

class Part(models.Model): 
    description = models.CharField(max_length=64) 
    number= models.CharField(max_length=64) 
    price= models.FloatField() 

class Group(models.Model): 
    name = models.CharField(max_length=64) 
    parts = models.ManyToManyField(Part) 

Vì vậy, tôi có các nhóm (đơn đặt hàng) khác nhau với một số phần trong đó.

Điều tôi muốn làm là có thuộc tính số lượng cho các phần của nhóm. Nhưng nếu tôi muốn thêm trường số lượng cho đối tượng Part của tôi, mỗi nhóm sẽ có cùng số lượng, đó không phải là hành vi đúng. Làm cách nào để các nhóm của tôi nhớ được họ có bao nhiêu phần?

Cảm ơn bạn đã nhập liệu và tôi hy vọng đây không phải là câu hỏi đầy đủ!

+0

bạn cần một 'through' bảng – karthikr

+2

Không sử dụng phao nổi cho giá cả, sử dụng một DecimalField. –

+0

Cảm ơn Daniel Roseman, tôi đã tìm cách để có được 2 chữ số thập phân đó! – Speccy

Trả lời

6

Bạn sẽ cần một through table:

Mô hình trung gian được kết hợp với ManyToManyField sử dụng lập luận thông qua để trỏ đến các mô hình mà sẽ hoạt động như một trung gian.

class Part(models.Model): 
    description = models.CharField(max_length=64) 
    number= models.CharField(max_length=64) 
    price= models.FloatField() 

class Group(models.Model): 
    name = models.CharField(max_length=64) 
    parts = models.ManyToManyField(Part, through='GroupPart') 
4

Tạo mới through table giữa GroupPart giữ số lượng.

Các vấn đề liên quan