2016-08-05 4 views
0

現在、私は両方のClient外部キーをSigninに割り当て、いずれの参照も保存しないという問題があります。相続人はサインインもモデルDjango ForeignKeysが保存しない

#Sign-ins require just a user 
class Signin(models.Model): 
    employee = models.ForeignKey(Employee) 
    sign_in_time = models.DateTimeField(null=True) 
    sign_out_time = models.DateTimeField(null=True) 
    sign_in_number = models.CharField(max_length=15, default="00000000000") 
    sign_out_number = models.CharField(max_length=15, default="00000000000") 
    client_in_obj = models.ForeignKey(Clients, related_name="client_in", null=True) 
    client_out_obj = models.ForeignKey(Clients, related_name="client_out", null=True) 
    client_in = models.CharField(max_length=100, default="Unkown") 
    client_out = models.CharField(max_length=100, null=True) 
    # Start of Sign in Function 
    def save(self, *args, **kwargs): 
     self.client_out_obj.save() 
     self.client_in_obj.save() 
     super(Signin, self).save(*args, **kwargs) 

    def __str__(self): 
     return self.employee.first_name + " " + self.employee.last_name + " : " + str(self.sign_in_time)+ " to " + str(self.sign_out_time) 

は今、従業員のフィールドは節約が、2 client_in_obj、およびclient_out_objは保存されませんされています。私はそれらを割り当てますし、ページを更新するときには設定されません。ここで

は、彼らがclient_inとclient_outフィールドは今のところ、それによって取得しようとしているの私のhackey方法でしたクライアントモデル

class Clients(models.Model): 
    name = models.CharField(max_length=40, blank=True, null=True) 
    alt_name = models.CharField(max_length=25, blank=True, null=True) 
    address1 = models.CharField(max_length=35, blank=True, primary_key=True) 
    address2 = models.CharField(max_length=35, blank=True, null=True) 
    rate = models.FloatField(blank=True, null=True) 
    contact_email = models.CharField(max_length=40, blank=True, null=True) 
    contact_name = models.CharField(max_length=30, blank=True, null=True) 
    phone = models.CharField(max_length=40, blank=True, null=True) 
    billing_name = models.CharField(max_length=30, blank=True, null=True) 
    billing_email_field = models.CharField(db_column='billing_email_', max_length=12, blank=True, null=True) # Field renamed because it ended with '_'. 

    def __str__(self): 
     return self.name + ", " + self.address1 

    class Meta: 
     managed = False 
     db_table = 'clients' 

です。

従業員には複数のサインインがあり、各サインインには最初に従業員が必要で、お互いのフィールドは1日のうちに満たされます。

+0

Signin Modelの両方のクライアントオブジェクトで関連する名前を変更しようとしましたが、同じ名前のCharfieldsと混ざっている可能性があります。これはうまくいかなかった:( – khancock

答えて

1

答えが見つかりました!

だから問題は続いた。私はMySQLでレガシーデータベースを扱っていましたが、問題はdjangoがクライアントIDを割り当てるときにプライマリキーが整数フィールドだと思っていたので、キー(varchar)を割り当てようとしたときにintegerフィールド、それはそれを好きではなかったし、保存しませんでした。うまくいけば、後でこの問題に遭遇する人に役立ちます!

関連する問題