2010-05-05 45 views
12

Tôi đang cố gắng để đồng bộ db của tôi từ một cái nhìn, một cái gì đó như thế này:lập trình đồng bộ hóa các db trong Django

from django import http 
from django.core import management 

def syncdb(request): 
    management.call_command('syncdb') 
    return http.HttpResponse('Database synced.') 

Vấn đề là, nó sẽ chặn các máy chủ dev bằng cách yêu cầu người dùng nhập vào từ thiết bị đầu cuối . Làm thế nào tôi có thể vượt qua tùy chọn '--noinput' để ngăn tôi hỏi bất cứ điều gì?

Tôi có cách khác để đánh dấu người dùng là người dùng siêu, vì vậy không cần đầu vào của người dùng, nhưng tôi thực sự cần gọi syncdb (và flush) theo chương trình mà không cần đăng nhập vào máy chủ qua ssh. Bất kỳ trợ giúp được đánh giá cao.

Trả lời

20
management.call_command('syncdb', interactive=False) 
+1

Làm việc lớn, cảm ơn! –

4

trình như thế này (ít nhất là với Django 1.1.):

from django.core.management.commands import syncdb 
syncdb.Command().execute(noinput=True) 
Các vấn đề liên quan