Okay, I'm still lacking understanding on the inventory part. Here's what I have so far:
class Inventory(models.Model): id = models.AutoField(primary_key=True, verbose_name="inventory") samurai_id = models.ForeignKey('Samurai') item_id = models.ManyToManyField(Item) condition = models.IntegerField(default=100, blank=True, verbose_name='condition') This has almost all the functionality I want. I can assign a single inventory to a single samurai, and I can add multiple items to the inventory. The problem is that I can't associate a unique condition (100% or less) with each item. And I can't seem to add the same item twice. I would like to have an inventory that looked like this: Inventory for Samurai Sam: (item - condition) Item1 - 100% Item1 - 75% Item2 - 100% -Tim On Thu, Feb 18, 2010 at 7:27 PM, Tim Shaffer <timster...@gmail.com> wrote: > 1) You can change this in your model. Check out "verbose_name" and > "verbose_name_plural" for the model's Meta class. > > http://docs.djangoproject.com/en/dev/ref/models/options/ > > 2) If you have a ManyToMany field to samurai on the item, you don't > need the inventory model at all. A samurai's inventory could be > obtained by doing "samurai.item_set" and it would return all their > items. There are different reasons to do each one. However..... > > 3) Duplicates can be done by using the Inventory model. You could > either add a new field called quantity, or simply have multiple > Inventory records per item and samurai. If each item can have specific > attributes (for example, I can have 2 of the same item, one of which > has 55% durability, and the other has 70% durability) you would want > to have separate records, and could put these attributes on the > inventory model or item model. But if each item is the same, it's > easier to just use a quantity field. > > 4) If status is a field that could have changing options, create a > Status model and do a ForiegnKey(Status) on the item. If the choices > aren't going to change frequently, the choices field could be an > Integer or String field and use the Django choices functionality. > > http://www.djangoproject.com/documentation/models/choices/ > > I gather that you may not have a ton of experience working with > relational databases. Perhaps an article on basic database design > might help. It's best to really understand how a relational database > works and should be designed before trying to work with Django's ORM. > > > http://www.deeptraining.com/litwin/dbdesign/FundamentalsOfRelationalDatabaseDesign.aspx > > On Feb 18, 3:17 pm, Timothy Kinney <timothyjkin...@gmail.com> wrote: > > Hello, I'm new to Django, but learning as fast as I can. I would > > appreciate some technical help and some database design advice... > > > > ** > > 1) Admin pluralizing question > > > > So I have three models: samurai, item, inventory > > > > When I login to the admin screen it has chosen to pluralize them as: > > samurais, items, inventorys > > > > I'm a little bit anal, so this bothers me. Where can I change it to: > > samurai, items, inventories ? > > > > ** > > 2) Model relationships question > > > > Can someone validate that I am using the right relations for these? > > Users will login with a unique id and instantiate a samurai, each > > possessing various attributes (not shown below). Items have unique IDs > > but many samurai can have many of the same items (including > > duplicates)- also the items have a status as to the condition of the > > item. There is one inventory for each samurai which links his items to > > him. Based on this system, I believe I should do the following... > > > > Samurai model: AutoField ID (primary key, unique) > > Item model: AutoField ID (primary key, unique), ManyToMany(Samurai) > > Inventory: Foreignkey(Samurai), ManyToMany(Item) > > > > Did I do this right? > > > > ** > > > > And two design questions: > > > > 3) How should I implement duplicates of items for a single inventory? > > For example, one samurai may have two identical fish. Should I store > > this as an additional field in the inventory? If so, how do I link it > > to the item id? Is it cleaner/faster/better to use a dictionary? > > Actually, I've never heard of a dict in SQL. > > > > 4) How should I implement the status/condition of the items? For > > example, I want them to be "New", "Used", or "Broken/Unusable". Should > > I store this in the inventory or in a separate model called Status? If > > the latter, should I use a foreignkey(item) and OneToOne(Inventory) or > > something else? > > > > Thank you very much for your help. If you are aware of any tutorials > > or available source code for coding RPGs, browser games, or > > inventories, I will be happy to follow links and try to learn on my > > own. > > > > -Tim > > -- > You received this message because you are subscribed to the Google Groups > "Django users" group. > To post to this group, send email to django-us...@googlegroups.com. > To unsubscribe from this group, send email to > django-users+unsubscr...@googlegroups.com<django-users%2bunsubscr...@googlegroups.com> > . > For more options, visit this group at > http://groups.google.com/group/django-users?hl=en. > > -- You received this message because you are subscribed to the Google Groups "Django users" group. To post to this group, send email to django-us...@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.