If I'll do something like:

class Car(models.Model):
    name = models.CharField(max_length=100)
    parts = models.ManyToManyField('Part', through = 'PartsInCar')

class Part(models.Model):
    name = models.CharField(max_length=100)

class PartsInCar(models.Model):
    car = models.ForeignKey('Car')
    part = models.ForeignKey('Part')
    amount = models.IntegerField()

Whats the advantage of doing it 'through' if I can just make it a new 
model? Or am I completely wrong about everything again? :)

(Sorry for the double post)

W dniu piątek, 6 lipca 2012 19:14:53 UTC+2 użytkownik Soviet napisał:
>
> Thanks, but damn, isn't that overly complicated (for me). Using through 
> looks like a easier way, but then I have to add Wheel four times and can't 
> just type '4' in some field, since I don't need it to exist in database 
> four time, just an information that there are four wheels.
>
> W dniu piątek, 6 lipca 2012 16:43:27 UTC+2 użytkownik Tomas Neme napisał:
>>
>> > I don't understand. It's the same wheel added four times, not four 
>> > different wheels. 
>>
>> I guess you could implement it either way. The thing is that doing it 
>> this way would become complicated at the time you need to define what 
>> is attached where. For Lego pieces, I'd do this: 
>>
>> class LegoType(Model)  has a description, maybe a picture, and it's 
>> behavior 
>>
>> model LegoPiece has a ForeignKey(LegoType), a ManyToMany to other 
>> LegoPieces (the ones it's connected to). 
>>
>> You'd have one LegoType = wheel, and four LegoPiece who's type would 
>> be wheel. When you defined the Type you'd need a way to link each 
>> model to specific python code that controlled how many pieces it can 
>> connect to, and how, but that's a song for another day. 
>>
>> Then you do LegoPiece.objects.filter(type__name="wheel").count(), and 
>> voila, you have how many wheels you have. 
>>
>> You COULD have enough knowing the amount of pieces of each kind you 
>> have, you'd be modeling something similar to an inventory, but 
>> defining connections in that context would be unnecessarily 
>> complicated, since you'd not only have to count how many pieces you 
>> have of each type, but when you connect one to another, *which one* 
>> are you connecting? one that's free, or one that's connected to 
>> another one? How would you model the connections? Say one brick can 
>> connect to as many as 8 other pieces, 4 on each side, say you have 3 
>> bricks, so you know you can't have more than 24 connecctions, but.. 
>> how do you differentiate between A--B C--D--E and A--B--C--D or.. I 
>> don't know how to draw it, but D--A--B D--A--C (A is connected to D on 
>> one side, and to B and C both on the other). 
>>
>> It might be that you can model your needs this way, but AFAICS, it'd 
>> be a lot harder to follow things and keep things consistent in an 
>> Object Oriented way. 
>>
>> -- 
>> "The whole of Japan is pure invention. There is no such country, there 
>> are 
>> no such people" --Oscar Wilde 
>>
>> |_|0|_| 
>> |_|_|0| 
>> |0|0|0| 
>>
>> (\__/) 
>> (='.'=)This is Bunny. Copy and paste bunny 
>> (")_(") to help him gain world domination. 
>>
>

-- 
You received this message because you are subscribed to the Google Groups 
"Django users" group.
To view this discussion on the web visit 
https://groups.google.com/d/msg/django-users/-/ifxvdi0WJNUJ.
To post to this group, send email to django-users@googlegroups.com.
To unsubscribe from this group, send email to 
django-users+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/django-users?hl=en.

Reply via email to