简体   繁体   中英

django-import-export :ForeignKey with many fields

I need just export data from my admin. My code now looks like:

models.py

 from django.db import models
from services.models import Services,PromoCodes,CauseOfReservedPromocodes
# Create your models here.

class User(models.Model):
    name=models.CharField(max_length=200)
    surname=models.CharField(max_length=200)
    email=models.EmailField()
    password=models.CharField(max_length=200)
   telephone=models.PositiveIntegerField(max_length=12,blank=True,null=True)
    userRequest=models.ForeignKey('UsersRequests', blank=True, null=True, on_delete=models.CASCADE)

    def __str__(self):
        return self.name + " " + self.surname


class UsersRequests(models.Model):
    date = models.DateField()
    requestChannel = models.CharField(max_length=30)
    problem = models.CharField(max_length=200)
    solution = models.CharField(max_length=200)

    def __unicode__(self):
        return str(self.date) + " " + str(self.requestChannel) + " " + str(self.problem) + " " + str(self.solution)

And my admin.py is:

from django.contrib import admin
from .models import User,UsersRequests
from import_export import resources, widgets, fields
from import_export.admin import ImportExportModelAdmin,ExportMixin

class UsersResource(resources.ModelResource):
 class Meta:
        model = User
        fields = ('id', 'name', 'email', 'telephone', 'userRequest')

class UserAdmin(ImportExportModelAdmin):
    resource_class = UsersResource

@admin.register(User)
class UserAdmin(ImportExportModelAdmin):
    search_fields = ('name', 'surname', 'email', 'telephone')

I try everything to get userRequest work, but it send just integer - id for userRequest. How to get full data from class UsersRequests(models.Model)?

You should point all related field exactly, like:

class UsersResource(resources.ModelResource):
    class Meta:
        model = User
        fields = ('id', 'name', 'email', 'telephone',
        'userRequest__date', 'userRequest__problem')

@admin.register(User)
class UserAdmin(ImportExportModelAdmin):
    resource_class = UsersResource
    search_fields = ('name', 'surname', 'email', 'telephone')

And so on

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM