【发布时间】:2017-02-20 18:19:09
【问题描述】:
用户通过名为“UserText”的表单和模型输入文本。我使用 NLP 编写了一个函数来仅从 UserText 中提取问题。我希望这些单独的问题中的每一个都显示在管理界面的每个“用户问题”部分中。截至目前,我无法让它发挥作用。
这是我当前的代码:
模型.py
class UserText(models.Model):
user_input = models.TextField()
class Question(models.Model):
user_text = models.ForeignKey(
UserText,
on_delete=models.CASCADE,
blank=True,
null=True,
)
user_questions = models.CharField(max_length=2000)
Views.py
def user_text_view(request):
form = forms.UserTextForm()
if request.method == 'POST':
form = forms.UserTextForm(request.POST)
if form.is_valid():
UserText = models.UserText
Question = models.Question
user_input = request.POST.get('user_input', '')
user_input_obj = UserText(user_input = user_input)
user_questions_obj = Question(user_text = user_input_obj,
user_questions = Question_Init(user_input_obj))
user_input_obj.save()
user_questions_obj.save()
print("Thanks for the questions!")
else:
form = forms.UserTextForm()
return render(request, 'text_input_form.html', {'form': form})
Admin.py
class QuestionInLine(admin.StackedInline):
model = Question
display = ('user_questions_obj')
@admin.register(UserText)
class UserTextAdmin(admin.ModelAdmin):
model = UserText
display = ('user_input')
inlines = [
QuestionInLine,
]
最后是我的功能:
def Question_Init(user_input_obj):
Beginning_Question_Prompts = ("Who","Whom","What","Where","When","Why","Which",
"Whose","How","Was","Were","Did","Do","Does","Is")
Ending_Question_Prompts = ("?",":","...")
questions = []
text1 = user_input_obj.user_input
textList = sent_tokenize(text1)
for sentence in textList:
if sentence.startswith(Beginning_Question_Prompts):
questions.append(sentence)
if sentence.endswith(Ending_Question_Prompts):
questions.append(sentence)
return questions
我知道这很多,抱歉,但我不知道如何让每个问题都填充到我的管理界面中的问题字段中。谢谢
【问题讨论】:
标签: python django admin inline