Views、pyファイルの関数からDjangoデータベースにデータを挿入するにはどうすればよいですか?挿入する唯一の方法はpython manage.py Shell
ですか?
私が使用している詳細な説明:
例えば:
models.py:
from Django.db import models
class Publisher(models.Model):
name = models.CharField(max_length=30)
city = models.CharField(max_length=60)
views.py:
from Django.http import HttpResponse
import pymysql
from books.models import Publisher
def send(request):
p = Publisher(name='Apress', city='Berkeley')
p.save()
urls.py
niloofar.viewsからimport send
url(r '^ index /'、send)、
ページインデックスが読み込まれると、送信機能が動作し、データベースにデータが挿入されます。
それは動作しません。エラーは発生せず、インデックスページを更新しても何も起こりませんでした。データベースには何も送信されませんでした。データを挿入しようとしている方法に、構文に間違いがあると思います。
python manage.py Shell
を実行しても、次のことがわかります。
books.models import Publisherから
p = Publisher(name = 'Apress'、city = 'Berkeley')
p.save()
Djangoデータベースに何も挿入されません。
あなたの質問は非常に不明確です。おそらく Django-tutorial を実行する必要があります。
ただし、ビューからデータベースにデータを挿入できることを確認してください。 Foo
というモデルがあるとします:
models.py
class Foo(models.Model):
name = models.CharField(max_length=100)
view.py
from .models import Foo
def some_name(request):
foo_instance = Foo.objects.create(name='test')
return render(request, 'some_name.html.html')
モデルの1つのインスタンスを作成して保存するだけです。 Articleモデルがあるとします:
from Django.http import HttpResponse
from Django.template import loader
from .models import Article
def index(request):
article = Article()
article.title = 'This is the title'
article.contents = 'This is the content'
article.save()
template = loader.get_template('articles/index.html')
context = {
'new_article_id': article.pk,
}
return HttpResponse(template.render(context, request))
あなたはこれを試すことができます:
def myFunction(request):
myObj = MyObjectType()
myObj.customParameter = parameterX
...
myObj.save()