2017-06-16 65 views
-1

我在我的models.py文件中添加了新的列,保存了我的代碼,然後在Terminal我跑sudo python manage.py makemigrations music,然後是sudo python manage.py migrate。一旦運行sudo python manage.py migrate,我得到了Terminal一個錯誤說:爲什麼我的數據庫不能工作?

這是我的index.html文件:

<!DOCTYPE html> 
<html lang="en"> 
<head> 
    <title>The Page</title> 
    <meta charset="utf-8"> 
    <meta name="viewport" content="width=device-width, initial-scale=1"> 
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script> 
    <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script> 
    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css"> 
     {% load static %} 
    <link rel="stylesheet" href="{% static 'index.css' %}"> 
</head> 

<body> 


    <form class="col-md-4 col-md-offset-4" method="POST" name="formHandler"> 
     {% csrf_token %} 
     <div class="userNameMovement"> 
      <label for="usr">Email:</label> 
      <input class="form-control" id="email" name="email" placeholder="email" required="required"> 
     </div> 

     <div class="passwordMovement"> 
      <label for="usr">Username:</label> 
      <input class="form-control" id="userName" name="userName" placeholder="Username" required="required"> 
     <button type="submit" class="btn btn-default">Submit</button> 
    </form> 

    </body> 
</html> 

這是我的models.py文件:

from django.db import models 

class Person(models.Model): 
    email = models.CharField(max_length=20, default=4) 
    userName = models.CharField(max_length=20, default=4) 

    def __str__(self): 
     return self.email + " - " + self.userName 

class UI(models.Model): 
    person = models.ForeignKey(Person, on_delete=models.CASCADE) 

這是我的views.py文件:

from django.http import HttpResponse 
from django.shortcuts import render 
from .models import Person 

def index(request): 
    if request.method == 'POST': 
     email = request.POST.get('email') 
     userName = request.POST.get('userName') 
     if email and userName: 
      user = Person.objects.create(email=email, username=userName) 
      user.save() 
    return render(request, 'music/index.html') 

def detail(request, user_id): # Testing out page 2 
    return HttpResponse("<h2>Page # (testing this out) " + str(user_id) + "</h2>") 
+1

你當然不應該將你的遷移作爲'sudo'運行。 –

+0

@DanielRoseman我試圖運行它沒有sudo,仍然無法正常工作。我不能'.save()'終端中的任何Person對象而不會出現錯誤 – bojack

+0

在其他遷移文件中,您是否看到任何使用電子郵件字段的遷移? –

回答

0

你發佈的終端輸出是沒有錯誤的。它只是告訴你在你的數據庫中發生了什麼。

一切都應該沒問題,除非有其他錯誤信息。

+0

是的,但我創建了一個Person對象並給出用戶名,電子郵件和密碼,然後'object.save()'然後'Person.objects.all()',我什麼也沒得到 – bojack

+0

當我做'object.save ()',我得到一個錯誤,說'OperationalError:表music_person沒有列名爲電子郵件 ' – bojack

+0

您可以手動檢查您的數據庫?檢查表music_person是否存在並且具有列名稱的電子郵件。如果沒有,請檢查您的settings.py。可能是錯誤配置的數據庫問題。 – DeBaze

相關問題