from django.contrib import admin from .models import DrugInteraction class DrugInteractionAdmin(admin.ModelAdmin): list_display = ('id', 'drug1', 'drug2', 'interaction_type') search_fields = ('drug1', 'drug2', 'interaction_type') list_filter = ('interaction_type',) admin.site.register(DrugInteraction, DrugInteractionAdmin) 为上述代码定义增删改查数据的页面
时间: 2023-08-14 07:03:23 浏览: 78
好的,以下是一个可能的增删改查数据页面的代码示例:
```python
from django.shortcuts import render, redirect, get_object_or_404
from .forms import DrugInteractionForm
from .models import DrugInteraction
def drug_interaction_list(request):
interactions = DrugInteraction.objects.all()
context = {
'interactions': interactions,
}
return render(request, 'drug_interaction_list.html', context)
def drug_interaction_detail(request, pk):
interaction = get_object_or_404(DrugInteraction, pk=pk)
context = {
'interaction': interaction,
}
return render(request, 'drug_interaction_detail.html', context)
def drug_interaction_create(request):
if request.method == 'POST':
form = DrugInteractionForm(request.POST)
if form.is_valid():
form.save()
return redirect('drug_interaction_list')
else:
form = DrugInteractionForm()
context = {
'form': form,
}
return render(request, 'drug_interaction_form.html', context)
def drug_interaction_update(request, pk):
interaction = get_object_or_404(DrugInteraction, pk=pk)
if request.method == 'POST':
form = DrugInteractionForm(request.POST, instance=interaction)
if form.is_valid():
form.save()
return redirect('drug_interaction_list')
else:
form = DrugInteractionForm(instance=interaction)
context = {
'form': form,
}
return render(request, 'drug_interaction_form.html', context)
def drug_interaction_delete(request, pk):
interaction = get_object_or_404(DrugInteraction, pk=pk)
interaction.delete()
return redirect('drug_interaction_list')
```
在这个代码示例中,我们首先导入了必要的库和模型。然后,我们定义了五个视图函数:`drug_interaction_list`、`drug_interaction_detail`、`drug_interaction_create`、`drug_interaction_update` 和 `drug_interaction_delete`。下面分别解释这些函数的作用:
- `drug_interaction_list`:这个视图函数返回一个包含所有药物相互作用的列表页面,其中每个实例都有一个链接,可以跳转到该实例的详细页面。
- `drug_interaction_detail`:这个视图函数返回一个包含指定药物相互作用详细信息的页面。
- `drug_interaction_create`:这个视图函数返回一个表单页面,用户可以在其中输入新的药物相互作用信息。如果表单有效,则创建一个新实例并将用户重定向到列表页面。
- `drug_interaction_update`:这个视图函数返回一个表单页面,用户可以在其中更新现有药物相互作用信息。如果表单有效,则更新指定实例并将用户重定向到列表页面。
- `drug_interaction_delete`:这个视图函数删除指定实例并将用户重定向到列表页面。
为了实现这些视图函数,我们还需要定义一个表单类。以下是可能的表单类的代码示例:
```python
from django import forms
from .models import DrugInteraction
class DrugInteractionForm(forms.ModelForm):
class Meta:
model = DrugInteraction
fields = ('drug1', 'drug2', 'interaction_type')
```
在这个表单类中,我们定义了一个包含三个字段的表单,分别对应于药物相互作用实例的三个属性。我们还指定了模型类,以便使用 Django 自动生成表单字段。
阅读全文