2017-06-28 2 views
0

Ich werde ein Asset-Management-System aufbauen. Jede Immobilie verfügt über einen einzigartigen Immobiliencode, kombiniert mit Abteilungscode und Typcode.Wie Felder automatisch zusammengefügt werden

from django.db import models 


class Department(models.Model): 
    # department_code like rm01 
    department_code = models.CharField(max_length=4, unique=True) 
    name = models.CharField(max_length=100) 


class Type(models.Model): 
    # type_code like fe03 
    type_code = models.CharField(max_length=4, unique=True) 
    name = models.CharField(max_length=100) 


class Property(models.Model): 
    # property_code like rm01fe037767 
    property_code = models.CharField(max_length=12, unique=True) 
    name = models.CharField(max_length=100) 
    department = models.ForeignKey(Department) 
    type = models.ForeignKey(Type) 

Wie geht das? Oder gibt es einen anderen Weg, um das Ziel zu erreichen?

Antwort

0

Ja, aber nicht automatisch.

Im Normalfall: Wenn Sie neue Property hinzufügen wollen ~> Benutzer sollte andere 2 Modell richtig wählen?

dep_id = ? 
type_id= ? 
p = Property (id = dep_id+type_id, name = "blabla"...) 
p.save() 
And you should define the PK (default is int field, auto incre ~> to charfield) and input it by yourself 

Und normalerweise: Wir tun das nicht ...

Wir verwenden: foreignKey mag:

class Item(models.Model): 
    people = models.ForeignKey(People) 
    name = models.CharField(max_length=40) 
    value = models.IntegerField(default=0) 
    def __str__(self): 
     return self.name 
+0

Danke, ich 'ForeignKey' Fachbereich und Typ lassen holen. Ich wollte einen einzigartigen und aussagekräftigen Property-Code-Former haben. Aber jetzt, ich denke, ein sinnvoller Code ist nutzlos, da ich 'ForeignKey' bereits mit den anderen Modellen verbunden habe. Danke nochmal. –

+0

Sie sind willkommen –

Verwandte Themen