ManyToMany fields actually create a new intermediary join table in the 
database. If you are using an unmanaged database then you will need to 
create the intermediary table yourself. See the ManyToMany field reference 
<https://docs.djangoproject.com/en/dev/ref/models/fields/#manytomanyfield>

On Tuesday, July 15, 2014 12:44:18 PM UTC-5, G Z wrote:
>
> <http://www.djangobook.com/en/2.0/_images/book_editform1.png>
> I will start by saying I have an existing database, for the purpose of my 
> question it has three tables:
> Vm
> Vm_licenses 
> Licenses
>
> This database is per-existing before we decided to make a django 
> web-portal. Basically licenses is a database that contains all possibile 
> licenses, and Vm contains all the vms under our architecture. We then have 
> a table vm_licenses, where it has a unique index vm_license_id, and two 
> other columns vm_id with is the primary key for VM and license_id which is 
> the primary key for licenses. I want to use the admin page to be able to 
> edit the vm_licenses that way when i select a vm from vm_licenses on the 
> admin page I can select from a list of licenses which licenses go with that 
> vm. The only problem is the database already exist and as far as I can tell 
> the relationship between the tables doesn't exist in a way django can do 
> this with.
>
> I have the following model set up:
>
> class License(models.Model):
>    license_id = models.BigIntegerField(primary_key = True, editable = 
> False, db_column = 'license_id')
>    license_authority = models.ForeignKey(License_authoritie,  on_delete = 
> models.PROTECT)
>    product = models.CharField(max_length = 20)
>   
>    class Meta:
>       managed = False
>       db_table = 'licenses'
>       ordering = ['product']
>
>    def __unicode__(self):  # Python 3: def __str__(self):
>       return self.product
>          
> class Vm_license(models.Model):
>    vm_license_id = models.BigIntegerField(primary_key = True, editable = 
> False, db_column = 'vm_license_id')
>    license= models.ForeignKey(License,  on_delete = models.PROTECT)
>    vm = models.ForeignKey(Vm,  on_delete = models.PROTECT)
>    
>    class Meta:
>       managed = False
>       db_table = 'vm_licenses'
>
>
> class Vm(models.Model):
>    vm_id = models.BigIntegerField(primary_key = True, editable = False, 
> db_column = 'vm_id')
>    vm_mor = models.CharField(max_length = 20)
>    vm_name = models.CharField(max_length = 256)
>    vm_group= models.ForeignKey(Vm_group,  on_delete = models.PROTECT)
>    vm_display_name = models.CharField(max_length = 30)
>    datacenter= models.ForeignKey(Datacenter,  on_delete = models.PROTECT)
>    vcd_managed = models.CharField(max_length = 60)
>
>    class Meta:
>       managed = False
>       db_table = 'vms'
>
>    def __unicode__(self):  # Python 3: def __str__(self):
>       return self.vm_name
>
>
> My admin page is :
>
> class vm_license_admin(admin.ModelAdmin):
>>     list_display = ('vm', 'vm_license_id')
>>     search_fields = ('vm__vm_name',)
>>     ordering = ('vm',)
>>     #filter_horizontal = ('license',)
>>
>
>
> it says I need a manytomany relationship so I cahnged  
>  
> license= models.ForeignKey(License,  on_delete = models.PROTECT)
>
> license= models.ManyToManyField(License)
>
> but then it says it cant find the table or view from oracle when I change 
> it..
>
>
> How do I fix this I want to be able to assign licenses like the following 
> picture:
>
>
>

-- 
You received this message because you are subscribed to the Google Groups 
"Django users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/django-users.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/django-users/c3626e86-fc46-4d0d-b0d6-d12fb9589f5d%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to