2017-09-18 155 views
0

首先去構建一個Django應用程序獨奏。NOT NULL約束失敗:campgrounds_campground.author_id

我已經建立了一個用戶模型如下

class User(auth.models.User): 

    def __str__(self): 
     return self.username 

一切工作正常那裏。我然後創建一個營地模型

class Campground(models.Model): 
    author = models.ForeignKey('auth.User' , related_name='submitted_campgrounds') 
    name = models.CharField(max_length=128, blank=False, unique=True) 
    image = models.URLField(blank=False) 
    description = models.TextField() 

    def __str__(self): 
     return self.name 

    def get_absolute_url(self): 
     return reverse('campgrounds:single', kwargs={'pk':self.pk}) 

編輯

查看代碼

class CreateCampground(LoginRequiredMixin,generic.CreateView): 
    fields = ('name', 'image', 'description') 
    model = Campground 

形式是從CreateView的到來。

我在提交表單以創建新的露營地時出現錯誤。

不是從登錄的用戶中獲取用戶標識嗎?我在創建視圖的視圖上有LoginRequiredMixin。

任何幫助表示讚賞

+0

請添加代碼在其中添加了'Campground'視圖解決。 – FamousJameous

+0

顯示您的表格和數據 –

+0

請添加編輯錯誤 –

回答

0

您的代碼接縫沒問題。您剛創建新模型露營地時,現有用戶沒有露營地對象可能存在問題。我記得通過登錄到Django的管理員來解決這個問題,併爲沒有露營地的任何用戶手動創建露營地。或者,您可以嘗試刪除該用戶,然後再次進行遷移。

希望得到這個幫助。

乾杯 亨利

0

加入這個我CreateCampground觀點

def form_valid(self, form): 
    form.instance.author = self.request.user 
    return super(CreateCampground, self).form_valid(form) 
相關問題